今天接着上一篇,讲完Linux中的权限管理命令,并简单讲一下挂载命令。
SBIT:粘着位。只对目录有用,且普通用户对目录有w和x权限,即普通用户可以对目录有写入权限当一个目录赋予了粘着位,除了root可以删除所有文件外,普通用户就算拥有w权限,也不能删除其他用户的文件,只能删除自己建立的文件。
设置粘着位:
- chmod 1755 目录名:给目录赋予755权限并且设置了粘着位
- chmod o+t 目录名:同样
[user1@centos-7 tmp]$ mkdir dir_1
[user1@centos-7 tmp]$ chmod 1755 dir_1
[user1@centos-7 tmp]$ ls -ld dir_1
drwxr-xr-t. 2 user1 user1 6 4月 8 21:43 dir_1
[user1@centos-7 tmp]$ cd dir_1
[user1@centos-7 dir_1]$ touch aaa
[user1@centos-7 dir_1]$ echo 'aaa' >> aaa
[user1@centos-7 dir_1]$ ll
总用量 4
-rw-rw-r--. 1 user1 user1 4 4月 8 21:44 aaa
[user1@centos-7 dir_1]$ chmod 777 aaa
[user1@centos-7 dir_1]$ ll
总用量 4
-rwxrwxrwx. 1 user1 user1 4 4月 8 21:44 aaa
[user1@centos-7 dir_1]$ su - liming
密码:
上一次登录:四 3月 25 23:28:53 CST 2021pts/0 上
[liming@centos-7 ~]$ rm -rf /tmp/dir_1/aaa
rm: 无法删除"/tmp/dir_1/aaa": 权限不够
[liming@centos-7 ~]$ touch /tmp/dir_1/bbb
touch: 无法创建"/tmp/dir_1/bbb": 权限不够
[liming@centos-7 ~]$ exit
登出
[user1@centos-7 dir_1]$ chmod 1756 /tmp/dir_1
[user1@centos-7 dir_1]$ ls -ld /tmp/dir_1
drwxr-xrwT. 2 user1 user1 17 4月 8 21:44 /tmp/dir_1
[user1@centos-7 dir_1]$ su - liming
密码:
上一次登录:四 4月 8 21:45:25 CST 2021pts/0 上
[liming@centos-7 ~]$ rm -rf /tmp/dir_1/aaa
rm: 无法删除"/tmp/dir_1/aaa": 权限不够
可以发现,用户只能删除自己的文件,不能删除别人的文件。
chattr权限:格式:chattr [-+=] [选项] 文件或者目录名。chattr命令不能保护/、/dev、/tmp、/var目录!!因此在这些目录下的文件或者目录都用不了chattr命令
选项:
- i:如果对文件设置i属性,那么文件类似被锁死,不允许对文件进行删除改名和修改,如果对目录设置i属性,只能修改目录下的文件的数据,不能建立或者删除文件
[root@centos-7 ~]# chattr +i dir_1
[root@centos-7 ~]# lsattr
---------------- ./anaconda-ks.cfg
---------------- ./canglaoshi
---------------- ./yangmi
-----a---------- ./abc
---------------- ./abc~
---------------- ./abz~
----i----------- ./dir_1
[root@centos-7 ~]# echo 'aaa' >> dir_1/aaa
[root@centos-7 ~]# touch dir_1/bbb
touch: 无法创建"dir_1/bbb": 权限不够
- a:如果对文件设置a属性,那么只能在文件中增加数据,不能删除也不能修改,相当于把文件的内容锁起来,操作的话只能echo方式追加;如果对目录设置a属性,那么只允许在目录中建立和修改文件(名字不可以修改),不允许删除,相当于把目录中的文件锁起来。总的来说,a比i要宽松一点。a的话可以追加,除此之外删除修改和i一样都是不允许的
lsattr:查看文件系统属性
- lsattr -a 目录名:显示所有文件和目录
- lsattr -d 目录名:列出目录本身的属性,而不是子文件
sudo:针对命令,将某些管理员才能使用的命令赋予给普通用户
使用:visudo,实际上修改的是/etc/sudoers文件。
在文件中这样显示:
root ALL=(ALL) ALL:分别表示 用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对命令)
比如:sc ALL=/sbin/shutdown -r now:这个命令就是给予sc用户在本机使用shutdown命令中的now选项
- sudo -l:查看当前用户有哪些sudo权限
- sudo /sbin/shutdown -r now:执行命令要先命令的绝对路径
注意:千万不要随便把vim命令给用户,不然该用户可以通过vim修改系统文件,达到成为root的目的!!
文件系统查看命令:df
- df -h:使用习惯单位显示容量,如KB,MB或者GB等。该命令也可以查看是否挂载成功
[root@centos-7 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 888M 0 888M 0% /dev
tmpfs 898M 0 898M 0% /dev/shm
tmpfs 898M 9.6M 889M 2% /run
tmpfs 898M 0 898M 0% /sys/fs/cgroup
/dev/sda3 10G 1.5G 8.5G 15% /
/dev/sda1 197M 120M 77M 61% /boot
tmpfs 180M 0 180M 0% /run/user/0
/dev/mapper/vg1-lv1 197M 11M 187M 6% /mnt/lv1
- df -T:显示文件系统类型
- df -a:显示所有文件系统信息,包括特殊文件系统
du:显示文件或者目录大小
- du -a [目录名或文件名]:显示每个子文件的磁盘占用量,默认只统计子目录的磁盘占用量
[root@centos-7 ~]# du -a /tmp
0 /tmp/.Test-unix
0 /tmp/.XIM-unix
0 /tmp/.font-unix
0 /tmp/.ICE-unix
0 /tmp/.X11-unix
0 /tmp/issue.soft
0 /tmp/vmware-root_595-4013788883
0 /tmp/test
0 /tmp/vmware-root_590-2688750742
0 /tmp/vmware-root_600-2722697857
0 /tmp/vmware-root_631-4021718894
0 /tmp/vmware-root_610-2731152165
0 /tmp/vmware-root_624-2688750775
4 /tmp
- du -h [目录名或文件名]:使用习惯单位显示大小,比如KB,MB等。其实很多命令选项都有这个选项
- du -s [目录名或文件名]:统计总占用量,而不列出子目录和子文件的占用量
[root@centos-7 ~]# du -hs /tmp
4.0K /tmp
[root@centos-7 ~]# ls -ldh /tmp
drwxrwxrwt. 14 root root 4.0K 4月 8 22:06 /tmp
ll 命令与 du的统计目录大小的区别:
ll之后统计目录中一级目录的作用,而du命令可以统计目录中所有子目录的大小
du 与 df 命令的区别:df命令从文件系统考虑,还要统计命令或者程序占用的空间(常见的是文件已删除但是没有释放空间),du则只会计算文件或目录占用的空间。
[root@centos-7 ~]# df -h /
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 10G 1.5G 8.5G 15% /
[root@centos-7 ~]# du -sh /
du: 无法访问"/proc/1931/task/1931/fd/3": 没有那个文件或目录
du: 无法访问"/proc/1931/task/1931/fdinfo/3": 没有那个文件或目录
du: 无法访问"/proc/1931/fd/4": 没有那个文件或目录
du: 无法访问"/proc/1931/fdinfo/4": 没有那个文件或目录
1.6G /
可以发现,由于没有刷新文件系统,因此du会比df大很多,主要还是残余垃圾。
文件系统修复命令:fsck
- fsck -a 分区设备文件名:不显示用户提示,自动修复文件系统
- fsck -y 分区设备文件名:和-a一样,不过有的文件只支持-y
显示磁盘状态:dumpe2fs
- dumpe2fs 分区设备文件名
[root@centos-7 ~]# dumpe2fs -h /dev/sda1
dumpe2fs 1.42.9 (28-Dec-2013)
挂载命令:mount
- mount -l:查询已经挂载的设备,会显示卷标名称
- mount -a:根据配置文件/etc/fstab的内容,自动挂载
挂载命令格式:mount -t 文件系统 -L 卷标名 -o特殊选项 设备文件名 挂载点
挂载光盘格式:
建立挂载点:mkdri /mnt/cdrom
挂载:mount /dev/cdrom /mnt/cdrom
取消挂载:umount /mnt/cdrom