赞
踩
参考:《Linux 就该这么学》
为了方便管理属于同一组的用户, Linux 系统中还引入了用户组的概念。通过使用用
户组号码( GID, Group IDentification),我们可以把多个用户加入到同一个组中,从而方
便为组中的用户统一规划权限或指定任务。
在 Linux 系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且
这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户
组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组
useradd 命令用于创建新的用户,格式为“useradd [选项] 用户名”。
useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe
参数 | 作用 |
-d | 指定用户的家目录(默认为/home/username) |
-e | 账户的到期时间,格式为 YYYY-MM-DD. |
-u | 指定该用户的默认 UID |
-g | 指定一个初始的用户基本组(必须已存在) |
-G | 指定一个或多个扩展用户组 |
-N | 不创建与用户同名的基本用户组 |
-s | 指定该用户的默认 Shell 解释器 |
groupadd 命令
groupadd 命令用于创建用户组,格式为“groupadd [选项] 群组名”
usermod 命令
usermod 命令用于修改用户的属性,格式为“usermod [选项] 用户名”。
参数 | 作用 |
-c | 填写用户账户的备注信息 |
-d -m | 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去 |
-e | 账户的到期时间,格式为 YYYY-MM-DD |
-g | 变更所属用户组 |
-G | 变更扩展用户组 |
参数 | 作用 |
-L | 锁定用户禁止其登录系统 |
-U | 解锁用户,允许其登录系统 |
-s | 变更默认终端 |
-u | 修改用户的 UID |
usermod -G root linuxprobe
usermod -u 8888 linuxprobe
passwd 命令用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]”。
参数 | 作用 |
-l | 锁定用户,禁止其登录 |
-u | 解除锁定,允许用户登录 |
--stdin | 允许通过标准输入修改用户密码, 如echo "NewPassWord" | passwd --stdin Username |
-d | 使该用户可用空密码登录系统 |
-e | 强制用户在下次登录时修改密码 |
-S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 |
userdel 命令用于删除用户,格式为“userdel [选项] 用户名”。
参数 | 作用 |
-f | 强制删除用户 |
-r | 同时删除用户及用户家目录 |
一切都是文件
每个文件的类型不尽相同,因此 Linux 系统使用了不同的字符来加以区分
-:普通文件。
d:目录文件。
l:链接文件。
b:块设备文件。
c:字符设备文件。
p:管道文件。
每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读( r)、可写( w)、可执行( x)等权限
特别的,对目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。
文件的读、写、执行权限可以简写为 rwx,亦可分别用数字 4、 2、 1 来表示
权限分配 | 文件所有者 | 文件所属组 | 其他用户 | ||||||
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
举例:rwxrw-r--,数字法表示即为 764
SUID作用说明:CTF提权常用的思路,用find / -perm -4000 找到一个这样的可执行命令,进行内存溢出攻击查看 passwd 命令属性时发现所有者的权限由 rwx 变成了 rws,其中 x 改变成 s 就意味着该文件被赋予了 SUID 权限。
说明:如果原本的权限是 rw-呢?即原先权限位上没有 x 执行权限,那么被赋予特殊权限后将变成大写的 S。
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
cd /tmp
mkdir testdir
ls -ald testdir/
chmod -Rf 777 testdir/
chmod -Rf g+s testdir/
ls -ald testdir/
su - linuxprobe
cd /tmp/testdir/
echo "linuxprobe.com" > test
ls -al test 观察test文件属性
chmod 命令是一个非常实用的命令, 能够用来设置文件或目录的权限, 格式为“chmod [参数] 权限 文件或目录名称”。
chown,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。
参数-R 来表示递归操作
当对某个目录设置了 SBIT 粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。
与前面所讲的 SUID 和 SGID 权限显示方法不同,当目录被设置 SBIT 特殊权限位后,文
件的其他人权限部分的 x 执行权限就会被替换成 t 或者 T,原本有 x 执行权限则会写成 t,原
本没有 x 执行权限则会被写成 T。
对其他目录来设置 SBIT 特殊权限位,用 chmod 命令就可以了。对应的参数 o+t 代表设置 SBIT 粘滞位权限
chattr 命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。
如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。
参数 作用
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用 0 填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间(atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用 dump 命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
X 可以直接访问压缩文件中的内容
lsattr 命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。
一般权限、特殊权限、隐藏权限其实有一个共性—权限
是针对某一类用户设置的。如果希望对某个指定的用户进行单独的权限控制,就需要用到文
件的访问控制列表(ACL)了。通俗来讲,基于普通文件或目录设置 ACL 其实就是针对指定
的用户或用户组设置文件或目录的操作权限。另外,如果针对某个目录设置了 ACL,则目录
中的文件会继承其 ACL;若针对文件设置了 ACL,则文件不再继承其所在目录的 ACL。
普通用户,然后尝试进入 root 管理员的家目录中。在没有针对普通用户对 root 管理员的家目录设置 ACL之前,其执行结果是不正确的。
setfacl 命令用于管理文件的 ACL 规则,格式为“setfacl [参数] 文件名称”。文件的 ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用 setfacl 命令
可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。其中,针对目录文件需要使用-R 递归参数;针对普通文件则使用-m 参数;如果想要删除某个文件的 ACL,
则可以使用-b 参数。
setfacl -Rm u:linuxprobe:rwx /root
常用的 ls 命令是看不到 ACL 表信息的,但是却可以看到文件的权限最后一个点(.)变
成了加号(+),这就意味着该文件已经设置了 ACL 了。
getfacl 命令用于显示文件上设置的 ACL 信息,格式为“getfacl 文件名称”
su 命令与 sudo 服务
su 命令与用户名之间有一个减号(-),这意味着完全切
换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强
烈建议在切换用户身份时添加这个减号(-)。
sudo 命令用于给普通用户提供额外的权限来完成原本 root 管理员才能完成的任务,格式为“sudo [参数] 命令名称”。
参数 作用
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或 UID 值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行 sudo 时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数
也可以使用 sudo 命令提供的 visudo 命令来配置用户权限。但都必须是root
root ALL=(ALL) ALL
含义如下:
谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。