命令 | 解释 |
---|---|
ls -l file | 查看文件属性 |
ll file | 查看文件属性 |
ls -ld dir | 查看目录属性 |
ll -d dir | 查看目录属性 |
文件 | 目录 | |
---|---|---|
1 | 类型 | 类型 |
2 | 文件权限 | 目录权限 |
3 | SELinux Context | SELinux Context |
4 | 文件硬链接个数 | 目录中子目录的个数 |
5 | 文件拥有者 | 目录拥有者 |
6 | 文件拥有组 | 目录拥有组 |
7 | 文件大小 | 目录中子文件或子目录元数据大小 |
8 | 文件最后一次被修改时间 | 目录中的内容最后一次被修改时间 |
9 | 文件名称 | 目录名称 |
[root@workstation Desktop]# cd /mnt
[root@workstation mnt]# touch file
[root@workstation mnt]# mkdir westos
[root@workstation mnt]# ls -l file
-rw-r--r--. 1 root root 0 Jan 9 21:47 file
[root@workstation mnt]# ln /mnt/file /root/Desktop/file1 #创建硬链接
[root@workstation mnt]# ls -l file
-rw-r--r--. 2 root root 0 Jan 9 21:47 file
[root@workstation mnt]# echo haha > file
[root@workstation mnt]# ll file
-rw-r--r--. 1 root root 5 Jan 9 21:53 file
[root@workstation mnt]# ls -ld westos/
drwxr-xr-x. 2 root root 6 Jan 9 21:48 westos/
[root@workstation mnt]# touch westos/file
[root@workstation mnt]# ll -d westos/
drwxr-xr-x. 2 root root 18 Jan 9 21:58 westos/
[root@workstation mnt]# mkdir westos/redhat
[root@workstation mnt]# ll -d westos/
drwxr-xr-x. 3 root root 32 Jan 9 22:00 westos/
[root@workstation mnt]# rm -rf westos/redhat/
[root@workstation mnt]# ll -d westos/
drwxr-xr-x. 2 root root 18 Jan 9 22:02 westos/
[root@workstation mnt]# ls -a westos/
. .. file
第一个字符代表该文件的类型
符号 | 含义 |
---|---|
- | 文件 |
d | 目录 |
l | 链接文件(link file) |
b | 设备文件里可供存储的周边设备(可按块随机读写的设备) |
c | 设备文件里的串行接口设备,例如键盘、鼠标(一次性读取设备) |
s | 套接字 |
Linux是个多用户多任务的系统,常常会有多人同时使用同一主机来进行工作,为了考虑每个人的隐私权以及每个人爱好的工作环境,对用户进行分类。
用户对于文件的身份划分:
注:文件拥有者及拥有组只有超级用户root可以修改
命令 | 要改成的用户名或组名 | 目标 |
---|---|---|
chown | 用户名 | 文件 |
chgrp | 组名称 | 文件 |
chown -R | 用户名 | 目录 |
chgrp -R | 组名称 | 目录 |
chown | 用户名:组名称 | 文件 |
chown | 用户名.组名称 | 文件 |
chown -R | 用户名:组名称 | 目录 |
chown -R | 用户名.组名称 | 目录 |
[root@workstation Desktop]# cd /mnt
[root@workstation mnt]# touch linux{1..3}
[root@workstation mnt]# mkdir westos
[root@workstation mnt]# touch westos/rehat{1..3}
[root@workstation mnt]# ls -l /mnt
total 0
-rw-r--r--. 1 root root 0 Jan 9 22:23 linux1
-rw-r--r--. 1 root root 0 Jan 9 22:23 linux2
-rw-r--r--. 1 root root 0 Jan 9 22:23 linux3
drwxr-xr-x. 2 root root 48 Jan 9 22:24 westos
[root@workstation mnt]# ls -Rl /mnt
/mnt:
total 0
-rw-r--r--. 1 root root 0 Jan 9 22:23 linux1
-rw-r--r--. 1 root root 0 Jan 9 22:23 linux2
-rw-r--r--. 1 root root 0 Jan 9 22:23 linux3
drwxr-xr-x. 2 root root 48 Jan 9 22:24 westos
/mnt/westos:
total 0
-rw-r--r--. 1 root root 0 Jan 9 22:24 rehat1
-rw-r--r--. 1 root root 0 Jan 9 22:24 rehat2
-rw-r--r--. 1 root root 0 Jan 9 22:24 rehat3
[root@workstation mnt]# watch -n 1 "ls -Rl /mnt"
[root@workstation mnt]# useradd haha
[root@workstation mnt]# ll linux1
-rw-r--r--. 1 root root 0 Jan 10 01:37 linux1
[root@workstation mnt]# chown student linux1
[root@workstation mnt]# ll linux1
-rw-r--r--. 1 student root 0 Jan 10 01:37 linux1
[root@workstation mnt]# chgrp haha /mnt/linux1
[root@workstation mnt]# ll linux1
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# ll linux2
-rw-r--r--. 1 root root 0 Jan 10 01:37 linux2
[root@workstation mnt]# chown student.haha /mnt/linux2
[root@workstation mnt]# ll linux2
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux2
[root@workstation mnt]# ll linux3
-rw-r--r--. 1 root root 0 Jan 10 01:37 linux3
[root@workstation mnt]# chown haha:student linux3
[root@workstation mnt]# ll linux3
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
[root@workstation mnt]# chown student:student westos/
[root@workstation mnt]# ll -R
.:
total 0
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux1
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
drwxr-xr-x. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
-rw-r--r--. 1 root root 0 Jan 10 01:37 redhat1
-rw-r--r--. 1 root root 0 Jan 10 01:37 redhat2
-rw-r--r--. 1 root root 0 Jan 10 01:37 redhat3
[root@workstation mnt]# chown student:student westos/ -R
[root@workstation mnt]# ll -R
.:
total 0
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux1
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
drwxr-xr-x. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat1
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat2
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat3
设定权限的方式 | 命令 |
---|---|
字符方式设定文件权限 | chmod [参数] 权限模式 目标 |
数字方式设定文件权限 | chmod [参数] 权限值 目标 |
依照模板复制文件权限 | chmod [参数] --reference=模板 目标 |
chmod <+/-/=>
例:
chmod | 参数 | 权限模式 | 目标 |
---|---|---|---|
chmod | u=rw | 文件 | |
chmod | ug-w,o+x | 文件 | |
chmod | -r/-x/-w | 文件 | |
chmod | a-w | 文件 | |
chmod | -R | u=rw | 目录 |
chmod | -R | ug-w,o+x | 目录 |
chmod | -R | -r/-x/-w | 目录 |
chmod | -R | a-w | 目录 |
[root@workstation mnt]# ll linux1
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod u+x linux1
[root@workstation mnt]# ll linux1
-rwxr--r--. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod u-w linux1
[root@workstation mnt]# ll linux1
-r-xr--r--. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod u=w linux1
[root@workstation mnt]# ll linux1
--w-r--r--. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod g+w linux1
[root@workstation mnt]# ll linux1
--w-rw-r--. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod ugo-rw linux1
[root@workstation mnt]# ll linux1
----------. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod u+r,g+w linux1
[root@workstation mnt]# ll linux1
-r---w----. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod go=r linux1
[root@workstation mnt]# ll linux1
-r--r--r--. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod u=rwx linux1
[root@workstation mnt]# ll linux1
-rwxr--r--. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod a=x linux1
[root@workstation mnt]# ll linux1
---x--x--x. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# chmod -x linux1
[root@workstation mnt]# ll linux1
----------. 1 student haha 0 Jan 10 01:37 linux1
[root@workstation mnt]# ll -R
.:
total 0
----------. 1 student haha 0 Jan 10 01:37 linux1
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
drwxr-xr-x. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat1
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat2
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat3
[root@workstation mnt]# chmod g+w westos/
[root@workstation mnt]# ll -R
.:
total 0
----------. 1 student haha 0 Jan 10 01:37 linux1
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
drwxrwxr-x. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat1
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat2
-rw-r--r--. 1 student student 0 Jan 10 01:37 redhat3
[root@workstation mnt]# chmod -R g+w westos/
[root@workstation mnt]# ll -R
.:
total 0
----------. 1 student haha 0 Jan 10 01:37 linux1
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
drwxrwxr-x. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
-rw-rw-r--. 1 student student 0 Jan 10 01:37 redhat1
-rw-rw-r--. 1 student student 0 Jan 10 01:37 redhat2
-rw-rw-r--. 1 student student 0 Jan 10 01:37 redhat3
权限可以用一个八进制数字来表示
权限 | 二进制 | 八进制 |
---|---|---|
- - - | 000 | 0 |
- - x | 001 | 1 |
- w - | 010 | 2 |
- wx | 011 | 3 |
r- - | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
权限管理方法
chmod 数字 TAG
[root@workstation mnt]# ll linux2
-rw-r--r--. 1 student haha 0 Jan 10 01:37 linux2
[root@workstation mnt]# chmod 777 linux2
[root@workstation mnt]# ll linux2
-rwxrwxrwx. 1 student haha 0 Jan 10 01:37 linux2
[root@workstation mnt]# chmod 666 linux2
[root@workstation mnt]# ll linux2
-rw-rw-rw-. 1 student haha 0 Jan 10 01:37 linux2
[root@workstation mnt]# ls -lR
.:
total 0
----------. 1 student haha 0 Jan 10 01:37 linux1
-rw-rw-rw-. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
drwxrwxr-x. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
-rw-rw-r--. 1 student student 0 Jan 10 01:37 redhat1
-rw-rw-r--. 1 student student 0 Jan 10 01:37 redhat2
-rw-rw-r--. 1 student student 0 Jan 10 01:37 redhat3
[root@workstation mnt]# chmod -R 777 westos/
[root@workstation mnt]# ls -lR
.:
total 0
----------. 1 student haha 0 Jan 10 01:37 linux1
-rw-rw-rw-. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
drwxrwxrwx. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
-rwxrwxrwx. 1 student student 0 Jan 10 01:37 redhat1
-rwxrwxrwx. 1 student student 0 Jan 10 01:37 redhat2
-rwxrwxrwx. 1 student student 0 Jan 10 01:37 redhat3
复制权限方式
chmod --reference=属性源文件 TAG
例:chmod --reference=/mnt/westos westos1
[root@workstation mnt]# ls -lR
.:
total 0
----------. 1 student haha 0 Jan 10 01:37 linux1
-rw-rw-rw-. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
drwxrwxrwx. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
-rwxrwxrwx. 1 student student 0 Jan 10 01:37 redhat1
-rwxrwxrwx. 1 student student 0 Jan 10 01:37 redhat2
-rwxrwxrwx. 1 student student 0 Jan 10 01:37 redhat3
[root@workstation mnt]# chmod -R --reference=linux1 westos/
[root@workstation mnt]# ls -lR
.:
total 0
----------. 1 student haha 0 Jan 10 01:37 linux1
-rw-rw-rw-. 1 student haha 0 Jan 10 01:37 linux2
-rw-r--r--. 1 haha student 0 Jan 10 01:37 linux3
d---------. 2 student student 51 Jan 10 01:37 westos
./westos:
total 0
----------. 1 student student 0 Jan 10 01:37 redhat1
----------. 1 student student 0 Jan 10 01:37 redhat2
----------. 1 student student 0 Jan 10 01:37 redhat3
[root@workstation mnt]# chmod --reference=linux1 linux2
[root@workstation mnt]# ll linux2
----------. 1 student haha 0 Jan 10 01:37 linux2
[root@workstation mnt]# cp linux1 linux4
[root@workstation mnt]# cp -p linux1 linux5
[root@workstation mnt]# ll linux{1,4,5}
----------. 1 student haha 0 Jan 10 01:37 linux1
----------. 1 root root 0 Jan 10 03:05 linux4
----------. 1 student haha 0 Jan 10 01:37 linux5
[root@workstation Desktop]# touch file
[root@workstation Desktop]# mkdir westos
[root@workstation Desktop]# umask
0022
[root@workstation Desktop]# ll -R
.:
total 0
-rw-r--r--. 1 root root 0 Jan 10 03:18 file
drwxr-xr-x. 2 root root 6 Jan 10 03:18 westos
./westos:
total 0
[root@workstation Desktop]# rm -rf *
[root@workstation Desktop]# touch file
[root@workstation Desktop]# mkdir westos
[root@workstation Desktop]# ll -R
.:
total 0
-rw-------. 1 root root 0 Jan 10 03:23 file
drwx------. 2 root root 6 Jan 10 03:23 westos
./westos:
total 0
若要永久修改
[root@workstation Desktop]# vim /etc/bashrc
[root@workstation Desktop]# vim /etc/profile
[root@workstation Desktop]# source /etc/bashrc
[root@workstation Desktop]# source /etc/profile
[root@workstation Desktop]# rm -rf *
[root@workstation Desktop]# touch file
[root@workstation Desktop]# mkdir westos
[root@workstation Desktop]# ll -R
.:
total 0
----------. 1 root root 0 Jan 10 03:44 file
d---------. 2 root root 6 Jan 10 03:44 westos
./westos:
total 0
SUID
SGID
STICKYID
SUID
chmod | u+s | TAG |
chmod | 4原文件属性 | TAG |
SGID
chmod | g+s | TAG |
chmod | 2原文件属性 | TAG |
STICKYID
chmod | o+t | TAG |
chmod | 1原文件属性 | TAG |
[root@workstation mnt]# rm -rf *
[root@workstation mnt]# mkdir /mnt/westos
[root@workstation mnt]# chmod 777 /mnt/westos/
[root@workstation mnt]# ls -ld /mnt/westos;ls -l /mnt/westos
drwxrwxrwx. 2 root root 6 Jan 12 00:05 /mnt/westos
total 0
[root@workstation mnt]# su - student
Last login: Sat Jan 11 21:55:57 EST 2020 on pts/0
[student@workstation ~]$ cd /mnt/westos/
[student@workstation westos]$ touch file
[student@workstation westos]$ ls -ld /mnt/westos/;ll /mnt/westos/
drwxrwxrwx. 2 root root 18 Jan 12 00:07 /mnt/westos/
total 0
-rw-rw-r--. 1 student student 0 Jan 12 00:07 file
[student@workstation westos]$ exit
logout
[root@workstation mnt]# su - westos
Last login: Sat Jan 11 21:38:13 EST 2020 on pts/0
[westos@workstation ~]$ touch /mnt/westos/file1
[westos@workstation ~]$ ll -d /mnt/westos/;ll /mnt/westos/
drwxrwxrwx. 2 root root 31 Jan 12 00:10 /mnt/westos/
total 0
-rw-rw-r--. 1 student student 0 Jan 12 00:07 file
-rw-rw-r--. 1 westos westos 0 Jan 12 00:10 file1
[westos@workstation ~]$ rm -rf /mnt/westos/file1
[westos@workstation ~]$ ll -d /mnt/westos/;ll /mnt/westos/
drwxrwxrwx. 2 root root 18 Jan 12 00:11 /mnt/westos/
total 0
-rw-rw-r--. 1 student student 0 Jan 12 00:07 file
[westos@workstation ~]$ rm -rf /mnt/westos/file
[westos@workstation ~]$ ll -d /mnt/westos/;ll /mnt/westos/
drwxrwxrwx. 2 root root 6 Jan 12 00:11 /mnt/westos/
total 0
[root@workstation mnt]# chmod o+t /mnt/westos/
[root@workstation mnt]# ls -ld /mnt/westos;ls -l /mnt/westos
drwxrwxrwt. 2 root root 6 Jan 12 00:11 /mnt/westos
total 0
[student@workstation ~]$ touch /mnt/westos/file
[student@workstation ~]$ ls -ld /mnt/westos/;ll /mnt/westos/
drwxrwxrwt. 2 root root 18 Jan 12 00:16 /mnt/westos/
total 0
-rw-rw-r--. 1 student student 0 Jan 12 00:16 file
[root@workstation mnt]# su - westos
Last login: Sun Jan 12 00:09:11 EST 2020 on pts/0
[westos@workstation ~]$ touch /mnt/westos/file1
[westos@workstation ~]$ ll -d /mnt/westos/;ll /mnt/westos/
drwxrwxrwt. 2 root root 31 Jan 12 00:17 /mnt/westos/
total 0
-rw-rw-r--. 1 student student 0 Jan 12 00:16 file
-rw-rw-r--. 1 westos westos 0 Jan 12 00:17 file1
[westos@workstation ~]$ rm -rf /mnt/westos/file1
[westos@workstation ~]$ ll -d /mnt/westos/;ll /mnt/westos/
drwxrwxrwt. 2 root root 18 Jan 12 00:18 /mnt/westos/
total 0
-rw-rw-r--. 1 student student 0 Jan 12 00:16 file
[westos@workstation ~]$ rm -rf /mnt/westos/file
rm: cannot remove '/mnt/westos/file': Operation not permitted
[root@workstation mnt]# ls -lR /mnt
/mnt:
total 0
drwxrwxrwt. 2 root root 6 Jan 12 00:31 westos
/mnt/westos:
total 0
[root@workstation mnt]# chown westos.westos /mnt/westos/
[root@workstation mnt]# ls -lR /mnt
/mnt:
total 0
drwxrwxrwt. 2 westos westos 6 Jan 12 00:31 westos
/mnt/westos:
total 0
[root@workstation mnt]# chmod 777 /mnt/westos/
[root@workstation mnt]# ls -lR /mnt
/mnt:
total 0
drwxrwxrwx. 2 westos westos 6 Jan 12 00:31 westos
/mnt/westos:
total 0
[root@workstation mnt]# chmod g+s /mnt/westos/
[root@workstation mnt]# ls -lR /mnt
/mnt:
total 0
drwxrwsrwx. 2 westos westos 6 Jan 12 00:31 westos
/mnt/westos:
total 0
[root@workstation mnt]# su - student
Last login: Sun Jan 12 00:16:01 EST 2020 on pts/0
[student@workstation ~]$ touch /mnt/westos/file
[student@workstation ~]$ ll -R /mnt/
/mnt/:
total 0
drwxrwsrwx. 2 westos westos 18 Jan 12 00:36 westos
/mnt/westos:
total 0
-rw-rw-r--. 1 student westos 0 Jan 12 00:36 file
[root@workstation mnt]# chmod 4755 /mnt/file
[root@workstation mnt]# ls -lR /mnt
/mnt:
total 0
-rwsr-xr-x. 1 root root 0 Jan 12 00:42 file
drwxrwsrwx. 2 westos westos 18 Jan 12 00:36 westos
/mnt/westos:
total 0
-rw-rw-r--. 1 student westos 0 Jan 12 00:36 file
[root@workstation mnt]# chmod 6755 /mnt/file
[root@workstation mnt]# ls -lR /mnt
/mnt:
total 0
-rwsr-sr-x. 1 root root 0 Jan 12 00:42 file
drwxrwsrwx. 2 westos westos 18 Jan 12 00:36 westos
/mnt/westos:
total 0
-rw-rw-r--. 1 student westos 0 Jan 12 00:36 file
[root@workstation mnt]# chmod 7755 /mnt/file
[root@workstation mnt]# ls -lR /mnt
/mnt:
total 0
-rwsr-sr-t. 1 root root 0 Jan 12 00:42 file
drwxrwsrwx. 2 westos westos 18 Jan 12 00:36 westos
/mnt/westos:
total 0
-rw-rw-r--. 1 student westos 0 Jan 12 00:36 file
传统的权限仅有三种身份(owner,group,others)搭配三种权限(r,w,x),并没有办法单纯的针对某一个使用者或某一个群组来设置特定的权限需求,这时就需要使用ACL(文件访问控制,Access Control List)这个机制
注意:因此目前ACL几乎已经默认加入在所有常见的Linux文件系统的挂载参数中(ext2/ext3/ext4xfs等),但rhel6.0以及之前的版本默认不支持acl的功能
查看权限列表
getfacl
设定权限列表
setfacl
参数 | 功能 |
---|---|
-m | 设定权限 |
-x | 删除指定用户 |
-b | 关闭列表功能 |
[root@workstation Desktop]# cd /mnt
[root@workstation mnt]# touch westos
[root@workstation mnt]# ls -l westos
-rw-r--r--. 1 root root 0 Jan 11 20:20 westos
[root@workstation mnt]# useradd westos
[root@workstation mnt]# id westos
uid=1001(westos) gid=1001(westos) groups=1001(westos)
[root@workstation mnt]# setfacl -m u:westos:rw /mnt/westos
[root@workstation mnt]# ls -l westos
-rw-rw-r--+ 1 root root 0 Jan 11 20:20 westos
#可看出多了一个加号,表示该文件具有权限列表
[root@workstation mnt]# getfacl /mnt/westos
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos
# owner: root
# group: root
user::rw-
user:westos:rw-
group::r--
mask::rw-
other::r--
[root@workstation mnt]# su - westos #切换到westos用户
[westos@workstation ~]$ cd /mnt/
[westos@workstation mnt]$ ls
westos
[westos@workstation mnt]$ vim westos
[westos@workstation mnt]$ exit
logout
[root@workstation mnt]# ls -l /mnt/westos
-rw-rw-r--+ 1 root root 13 Jan 11 20:35 /mnt/westos
[root@workstation mnt]# su - student #切换到student用户
[student@workstation ~]$ cd /mnt
[student@workstation mnt]$ vim westos
:wq退出保存
:wq!强制退出保存,可看出文件不能被student用户写入
[root@workstation mnt]# setfacl -m u:student:0 /mnt/westos #设定用户的权限列表
[root@workstation mnt]# getfacl /mnt/westos
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos
# owner: root
# group: root
user::rw-
user:student:---
user:westos:rw-
group::r--
mask::rw-
other::r--
#可看出权限列表中增加了一个特定用户
[root@workstation mnt]# setfacl -m g:westos:rwx /mnt/westos #设定组的权限列表
[root@workstation mnt]# getfacl /mnt/westos
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos
# owner: root
# group: root
user::rw-
user:student:---
user:westos:rw-
group::r--
group:westos:rwx
mask::rwx
other::r--
#可看出权限列表中增加了一个特定用户组
[root@workstation mnt]# setfacl -x g:westos /mnt/westos #从权限列表中删除指定用户组
[root@workstation mnt]# getfacl /mnt/westos
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos
# owner: root
# group: root
user::rw-
user:student:---
user:westos:rw-
group::r--
mask::rw-
other::r--
[root@workstation mnt]# setfacl -x u:westos /mnt/westos #从权限列表中删除指定用户
[root@workstation mnt]# getfacl /mnt/westos
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos
# owner: root
# group: root
user::rw-
user:student:---
group::r--
mask::r--
other::r--
[root@workstation mnt]# ll westos
-rw-r--r--+ 1 root root 13 Jan 11 20:35 westos
[root@workstation mnt]# setfacl -b westos #关闭权限列表
[root@workstation mnt]# ll westos
-rw-r--r--. 1 root root 13 Jan 11 20:35 westos #加号消失
[root@workstation mnt]# getfacl /mnt/westos
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@workstation mnt]# ll westos
-rw-r--r--. 1 root root 13 Jan 11 20:35 westos
[root@workstation mnt]# chown westos.westos westos
[root@workstation mnt]# ll westos
-rw-r--r--. 1 westos westos 13 Jan 11 20:35 westos
[root@workstation mnt]# setfacl -m u:westos:0 westos
[root@workstation mnt]# getfacl westos
# file: westos
# owner: westos
# group: westos
user::rw-
user:westos:---
group::r--
mask::r--
other::r--
#可看出特殊指定的用户就是westos
[root@workstation mnt]# su - westos
Last login: Sat Jan 11 20:34:25 EST 2020 on pts/0
[westos@workstation ~]$ cd /mnt/
[westos@workstation mnt]$ ls
westos
[westos@workstation mnt]$ vim westos
:wq仍可退出保存文件,可见资源拥有者的权利高于特殊指定用户的权利
[root@workstation mnt]# setfacl -m g:student:rwx /mnt/westos
[root@workstation mnt]# getfacl westos
# file: westos
# owner: westos
# group: westos
user::rw-
user:westos:---
group::r--
group:student:rwx
mask::rwx
other::r--
[root@workstation mnt]# usermod -G westos student
[root@workstation mnt]# id student
uid=1000(student) gid=1000(student) groups=1000(student),1001(westos)
[root@workstation mnt]# su - student
Last login: Sat Jan 11 20:36:32 EST 2020 on pts/0
[student@workstation ~]$ vim /mnt/westos
[root@workstation mnt]# setfacl -m g:student:0 westos
[root@workstation mnt]# getfacl /mnt/westos
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos
# owner: westos
# group: westos
user::rw-
user:westos:---
group::r--
group:student:---
mask::r--
other::r--
[root@workstation mnt]# setfacl -m g::rwx /mnt/westos
#设定其拥有组的权利
[root@workstation mnt]# getfacl /mnt/westos
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos
# owner: westos
# group: westos
user::rw-
user:westos:---
group::rwx
group:student:---
mask::rwx
other::r--
[root@workstation mnt]# id student
uid=1000(student) gid=1000(student) groups=1000(student),1001(westos)
[root@workstation mnt]# su - student
Last login: Sat Jan 11 21:47:29 EST 2020 on pts/0
[student@workstation ~]$ vim /mnt/westos
:wq仍可退出保存文件,可见权利开放多的组的优先级高于权利开放少的组
setfacl -m m:权限值 TAG
[root@workstation mnt]# rm -rf *
[root@workstation mnt]# ls
[root@workstation mnt]# touch westos
[root@workstation mnt]# setfacl -m u:westos:rwx westos
[root@workstation mnt]# getfacl westos
# file: westos
# owner: root
# group: root
user::rw-
user:westos:rwx
group::r--
mask::rwx
other::r--
[root@workstation mnt]# ll westos
-rw-rwxr--+ 1 root root 0 Jan 11 22:04 westos
[root@workstation mnt]# chmod g-wx /mnt/westos #缩减组权限
[root@workstation mnt]# getfacl westos
# file: westos
# owner: root
# group: root
user::rw-
user:westos:rwx #effective:r--
group::r--
mask::r--
other::r--
#可见虽然用户westos设定权限为rwx,但生效权限为r--
[root@workstation mnt]# setfacl -m m:rwx /mnt/westos #恢复mask值
[root@workstation mnt]# getfacl westos
# file: westos
# owner: root
# group: root
user::rw-
user:westos:rwx
group::r--
mask::rwx
other::r--
default权限特性
default权限设定方式
setfacl -m d::权限目录
[root@workstation mnt]# rm -rf /mnt/*
[root@workstation mnt]# ls
[root@workstation mnt]# mkdir /mnt/westos
[root@workstation mnt]# touch /mnt/westos/file1
[root@workstation mnt]# ll -d /mnt/westos/
drwxr-xr-x. 2 root root 19 Jan 11 22:15 /mnt/westos/
[root@workstation mnt]# setfacl -m u:student:rwx /mnt/westos/
[root@workstation mnt]# getfacl /mnt/westos/
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos/
# owner: root
# group: root
user::rwx
user:student:rwx
group::r-x
mask::rwx
other::r-x
[root@workstation mnt]# ll /mnt/westos/
total 0
-rw-r--r--. 1 root root 0 Jan 11 22:15 file1
[root@workstation mnt]# getfacl /mnt/westos/file1
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos/file1
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@workstation mnt]# setfacl -R -m u:student:rwx /mnt/westos
[root@workstation mnt]# getfacl /mnt/westos/file1
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos/file1
# owner: root
# group: root
user::rw-
user:student:rwx
group::r--
mask::rwx
other::r--
[root@workstation mnt]# touch /mnt/westos/file2
[root@workstation mnt]# getfacl westos/file2
# file: westos/file2
# owner: root
# group: root
user::rw-
group::r--
other::r--
#可看出只对目录中原有文件生效
需要设定默认权限
[root@workstation mnt]# setfacl -m d:u:student:rwx westos/
[root@workstation mnt]# getfacl /mnt/westos/
getfacl: Removing leading '/' from absolute path names
# file: mnt/westos/
# owner: root
# group: root
user::rwx
user:student:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:student:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
[root@workstation mnt]# getfacl westos/file2
# file: westos/file2
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@workstation mnt]# touch westos/file3
[root@workstation mnt]# getfacl westos/file3
# file: westos/file3
# owner: root
# group: root
user::rw-
user:student:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
#可见default权限只对目录中新出现的文件或目录生效,对目录本身和目录中原有文件不生效
[root@workstation Desktop]# groupadd shengchan
[root@workstation Desktop]# groupadd caiwu
[root@workstation Desktop]# groupadd jishu
[root@workstation Desktop]# tail -n 5 /etc/group
dip:x:40:
westos:x:1001:student
shengchan:x:1002:
caiwu:x:1003:
jishu:x:1004:
1)tom是shengchan组的附加用户
[root@workstation Desktop]# useradd -G shengchan tom
[root@workstation Desktop]# id tom
uid=1002(tom) gid=1005(tom) groups=1005(tom),1002(shengchan)
2)harry是caiwu组的附加用户
root@workstation Desktop]# useradd -G caiwu harry
[root@workstation Desktop]# id harry
uid=1003(harry) gid=1006(harry) groups=1006(harry),1003(caiwu)
3)leo是jishu组的附加用户
[root@workstation Desktop]# useradd -G jishu leo
[root@workstation Desktop]# id leo
uid=1004(leo) gid=1007(leo) groups=1007(leo),1004(jishu)
4)新建admin用户,此用户不属于以上提到的三个部门
[root@workstation Desktop]# useradd admin
[root@workstation Desktop]# id admin
uid=1005(admin) gid=1008(admin) groups=1008(admin)
1)/pub目录为公共存储目录对所有用户可以读、写、执行,但用户只能删除属于自己的文件
[root@workstation Desktop]# mkdir /pub
[root@workstation Desktop]# chmod 1777 /pub/
[root@workstation Desktop]# ll -d /pub/
drwxrwxrwt. 2 root root 6 Jan 12 01:01 /pub/
2)/sc目录为生产部存储目录只能对生产部人员可以写入,并且生产部人员所建立的文件都自动归属到shengchan组中
[root@workstation Desktop]# mkdir /sc
[root@workstation Desktop]# chgrp -R shengchan /sc
[root@workstation Desktop]# chmod 2770 /sc
[root@workstation Desktop]# ll -d /sc
drwxrws---. 2 root shengchan 6 Jan 12 01:03 /sc
3)/cw目录为财务部存储目录只能对财务部人员可以写入,并且财务部人员所建立的文件都自动归属到caiwu组中
[root@workstation Desktop]# mkdir /cw
[root@workstation Desktop]# chgrp -R caiwu /cw
[root@workstation Desktop]# chmod 2770 /cw
[root@workstation Desktop]# ll -d /sc
drwxrws---. 2 root shengchan 6 Jan 12 01:03 /sc
4)admin用户能用touch工具在/sc目录和/cw目录任意建立文件,但不能删除文件
[root@workstation Desktop]# hostname
workstation.lab.example.com
[root@workstation Desktop]# visudo
[root@workstation Desktop]# su - admin
[admin@workstation ~]$ cd /sc
-bash: cd: /sc: Permission denied
[admin@workstation ~]$ touch /sc/file
touch: cannot touch '/sc/file': Permission denied
[admin@workstation ~]$ sudo touch /sc/file
[admin@workstation ~]$ exit
logout
[root@workstation Desktop]# ll -R /sc
/sc:
total 0
-rw-r--r--. 1 root shengchan 0 Jan 12 01:21 file
[admin@workstation ~]$ rm -rf /sc/file
rm: cannot remove '/sc/file': Permission denied
[admin@workstation ~]$ sudo touch /cw/file
[admin@workstation ~]$ exit
logout
[root@workstation Desktop]# ls -R /cw
/cw:
file
vim /etc/bashrc
vim /etc/profile
[root@workstation Desktop]# source /etc/bashrc
[root@workstation Desktop]# source /etc/profile
[root@workstation Desktop]# su - admin
Last login: Sun Jan 12 01:47:29 EST 2020 on pts/0
[admin@workstation ~]$ touch westos
[admin@workstation ~]$ ll westos
-r--r-----. 1 admin admin 0 Jan 12 01:49 westos
[root@workstation Desktop]# hostname
workstation.lab.example.com
[root@workstation Desktop]# visudo
[root@workstation Desktop]# su - admin
[admin@workstation ~]$ sudo useradd hhh
[admin@workstation ~]$ tail -n 1 /etc/passwd
hhh:x:1006:1009::/home/hhh:/bin/bash