添加用户组
groupadd ops 创建一个ops用户组
groupdel ops 删除用户组ops
添加用户
useradd -g ops sutton 创建用户sutton,加入到ops用户组
cat /etc/passwd 查看用户信息
根据命令的参数 可以修改用户信息
-s 修改用户默认的shell(/bin/bash)
-d 修改用户默认根目录(/home/<username>)
passwd sutton 给创建的用户设置密码
id sutton 查看用户信息
用户切换
su - sutton 切换到用户sutton,并跳转到sutton的用户环境/home/sutton
su sutton 切花到用户sutton,但不切换用户环境
执行 su - 指令时,高级用户(root)向低级用户(sutton)切换不需要密码; 而低级用户切换至高级用户以及平级用户之间的切换均需要输入密码
文件、文件夹权限
r 读取权限
w 写入权限
x 执行或切换权限
每个文件,文件夹有三组rwx的权限,分别代表拥有者(u),所属组(g),其他用户(o), 例如
-rw-r--r-- 从左到右十个字符,第一个字符表示文件(-)或文件夹(d),后面9个字符代表三组权限
chmod 修改文件权限 一般都是root用户去做权限管理的操作
chown 修改拥有者和所属组,拥有者不一定是创建这个文件的user,可以任意指定。一般都是root用户去做权限管理的操作
文件的权限
r 可以读取文件内容
w 可以修改文件内容,但不一定能删除
x 可以执行这个文件
touch /opt/test.sh 用root用户创建文件
chown root:ops /opt/test.sh 修改文件拥有者和所属组
chmod g+w /opt/test.sh 给所属组修改文件的权限
su - sutton 切换到sutton用户
vi /opt/test.sh 修改test文件,sutton属于ops用户组,ops拥有w权限,可以修改
rm /opt/test.sh 不能删除文件,sutton用户没有/opt文件夹的w权限。同理也不能新加文件
文件夹的权限
r 可以list文件夹下的文件(ls)
w 可以修改文件夹内文件(可以删除,新增文件、文件夹)
x 可以navigate到这个目录(cd)
mkdir /opt/test 创建目录test(root)
chmod o-r test 删除其他用户的读权限(root)
chmod o-x /opt/test 删除其他用户的x权限(root)
su - sutton
ls -al /opt/test ls: cannot open directory /opt/test: Permission denied 用户sutton没有test文件夹的r权限
cd /opt/test -bash: cd: /opt/test: Permission denied 用户sutton没有test文件夹x权限
chmod o+rx 给其他用户rx的权限(root执行)
touch /opt/test/test.sh touch: cannot touch ‘/opt/test/test.sh’: Permission denied 用户sutton没有文件夹w权限
u+s、g+s、o+t 三种用户权限
u+s 用户权限
执行命令chmod u+s, 针对可执行程序(不包括脚本),替换文件拥有者的x权限为s, 如果文件没有x权限标记为S。这个指令只对文件有效,如果用此权限放在目录是无效的。
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /bin/passwd
当普通用户执行passwd命令时,执行passwd的所拥有的用户权限是文件拥有者root的。如果没有s,普通用户执行这个文件只具有普通用户的权限。
passwd就是很好的例子,任何一个用户都可以执行这个命令去修改自己的password,但是修改password要更新/etc/shadow这个文件,然而这个文件一般用户是没有权限修改的,所以u+s后任何普通用户修改密码都是以root的权限运行passwd
g+s用户组权限
执行命令chmod g+s, 该命令用于文件时,就和u+s类似,普通用户执行时,赋予文件所属用户组拥有的权限执行。
该命令用于目录,目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
chgrp ops /opt/test 用root更改文件夹test的所属用户组
touch test/without-s 用root用户创建一个文件,文件默认是拥有者是root(创建文件的用户),所属用户组是root(文件拥有者所属用户组)
-rw-r--r-- 1 root root 0 Mar 17 20:21 test/without-s
chmod g+s test 更改目录s权限
touch test/with-s 用root用户创建另一个文件,文件所属用户组是ops,保持和父目录一致
-rw-r--r-- 1 root ops 0 Mar 17 20:21 with-s
su - sutton 切换到sutton用户
touch /opt/test/sutton-with-s
-rw-r--r-- 1 sutton ops 0 Mar 17 20:23 sutton-with-s 文件拥有者是sutton,所属用户组和父目录保持一致
o+t目录权限
sticky-bit权限,执行命令chmod o+t,设置于目录,只有文件的所有者才能删除目录下的文件(基于普通用户,root是没有限制的)。如果想限制只有所有者能删除文件,同时其它的用户保持对文件写入权限,就需要用到 t 模式了。用途上就是防止其他同组的用户删除自己不想被删除的目录。例如/tmp目录就是,任何用户都可以在/tmp目录下创建,删除, 修改文件的权限(这个目录是1777),但是为了防止普通用户恶意删除其他用户所生成的文件,所以tmp目录加了sticky-bit的限制,只有文件的拥有者才能删除文件, 普通用户不能删除其他拥有者的文件。
touch /tmp/mail-user 用root创建一个文件
chown rpcuser:root /tmp/mail-user 修改这个文件owner和group
su - sutton 切换用户
rm -rf /tmp/mail-user 由于不是文件owner,没法删除文件
rm: cannot remove ‘/tmp/mail-user’: Operation not permitted
chown sutton:root /tmp/mail-user 用root修改文件owner
rm /tmp/mail-user 用sutton 用户删除文件