chmod
命令(change modify)
使用该命令:所有用户者
语法:
chmod [ugoa...] [[+-=][rwx]...] [,...]
其他参数说明:
示例:
-r–r--r-- file.txt
chmod u+w file.txt
// 给file1.txt的属主添加w写权限 -rw-r--r-- file.txt
chmod go+w,u-w file.txt
// 给file.txt的属主删除w写权限,属组和其他用户添加w写权限 -r--rw-rw- file.txt
-r–r--rw- file1.txt
-r–r--rw- file2.txt
chmod ug+w,o-w file1.txt file2.txt
// 给file1.txt和file2.txt的属主和属组添加w写权限,给其他用户删除w写权限
// -rw-rw-r-- file1.txt
// -rw-rw-r-- file2.txt
-rw-rw-rw- file.txt
chmod a+x,a-w file.txt
// 给file.txt的属主,属组,其他用户都增加执行权限,删除写权限 -r-xr-xr-x file.txt
…
chmod 777
# 将文件的属主,属组,陌生的权限全部改成可读可写可执行
chown
命令(change own)
使用该命令:root
语法:
chown [-cfhvR] [--help] [--version] user[:group] file...
参数:
示例:
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt
将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
将文件 file1.txt 的拥有者设为 runoob:
chown runoob file1.txt
chmod 命令可修改属主和属组,chgrp 命令只能修改属组
[root@localhost test]# ll
---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log
[root@localhost test]# chgrp -v bin log2012.log
“log2012.log” 的所属组已更改为 bin
[root@localhost test]# ll
---xrw-r-- 1 root bin 302108 11-13 06:03 log2012.log
SUID(set user ID):如果设置了suid,那么其他用户执行该文件时,会以属主的身份执行
SGID(set group ID):如果设置了sgid,那么其他用户执行该文件时,会以属组的身份执行
Sticky:如果设置了sticky,那么其他用户执行该文件时,会议陌生用户身份执行
设置特殊权限
设置SUID:执行权限以s表示
chmod u+s file.txt
// 此时file.txt就设置了SUID权限 -rwsrwxrwx file.txt
设置SGID:执行权限以s表示
chmod g+s file.txt
// 此时file.txt就设置了SUID权限 -rwxrwsrwx file.txt
设置Sticky:执行权限以t表示
chmod o+s file.txt
// 此时file.txt就设置了SUID权限 -rwxrwxrwt file.txt
特殊权限数字表示
umask
命令指定在建立文件时预设的权限掩码。将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
通俗的讲,就是创建新文件时,生成的默认权限。特权位不参与减法运算,特权位设置什么特权就是什么。后3位由最高权限减去权限掩码得到默认权限。
最高权限为7777
第一个7:特权位,有SUID、SGID、Sticky
第二个7:拥有者权限,rwx
第三个7:所在群组权限,rwx
第四个7:默认用户权限,rwx
示例1:
设置权限掩码
umask 0002
创建一个目录
mkdir test
查询权限
ls -l
drwxrwxr-x ... test/
示例2:
设置权限掩码
umask 5002
创建一个目录
mkdir test
查询权限
ls -l
drwsrwxr-t ... test/
管理用户和用户组相关命令
情景模拟:
假设某一个开发团队,有user和admin这两个用户,这两个用户创建的文件全部存放在/var/data目录下。设这个目录的属组为public。如果设置这个目录,使得user和admin创建的文件可以相互访问和修改,并且不允许其他用户的访问,且user不能删除admin用户创建的文件,admin不能删除user用户创建的文件?写出详细的步骤和并操作验证截图。
root用户下,创建两个用户 user 和 admin
useradd user
useradd admin
// 查看用户是否查看成功
cat /etc/passwd
// 补充:删除用户
userdel user
userdel admin
// 补充:添加用户
useradd -g public admin // 在有public组的情况下,可以在创建用户时指定所属组
root用户下,创建 public 组群
groupadd public
// 补充:删除组
groupdel public
root用户下,将两个用户归到public组中
usermod -g public user
usermod -g public admin
root用户下,查看用户与用户组的情况
groups user admin
// 展示结果
user : public
admin : public
此时,已成功将两个用户归为一组
root用户下,创建 / data目录
mkdir /data
root用户下,查看data目录的权限情况
cd /
ls -l
root用户下,将该目录的属组改为public
chgrp public data
root用户下,如果设置这个目录,使得user和admin创建的文件可以相互访问和修改,并且不允许其他用户的访问
chmod g+w,o-rx data
user不能删除admin用户创建的文件,admin不能删除user用户创建的文件
user用户创建一个user目录,设置权限;admin用户创建admin目录,设置权限
// user 用户下
mkdir user
chmod o-rx user
// admin 用户下
mkdir admin
chmod o-rx admin
在user目录下创建了a.txt,在admin目录下创建了b.txt。验证,user用户不能删除admin用户的文件,admin用户不能删除user用户的文件