💁♂️个人主页:进击的荆棘
👇作者其它专栏:
《数据结构与算法》《算法》《C++起始之路》《Linux》
目录
1.Linux背景
2.使用XShell 远程登录Linux
3.Linux下基本指令
4.Linux权限的问题
4.Linux权限的问题
4.1Linux下的两种用户
●超级用户:可以在Linux系统下做任何事情,不受限制
●普通用户:在Linux下做有限的事情
●超级用户的命令提示符是'#',普通用户的命令提示符是'$'
命令:su [用户名]
功能:切换用户
例如,要从root用户切换到普通用户user,则使用su user即可
要从普通用户user切换到root用户,则使用su root(root可以省略),此时系统会提示输入root用户的密码。
4.2Linux权限管理
4.2.1文件访问者的分类
●文件和文件目录的所有者:u—User
●文件和文件目录的所有者所在的组的用户:g—Group
●其它用户:o—Others
4.2.2文件类型和访问权限(事物属性)
●文件类型:
▢ d:文件夹
▢ -:普通文件
▢ l:软链接(类似Windows的快捷方式)
▢ b:块设备文件(例如硬盘、光驱等)
▢ p:管道文件
▢ c:字符设备文件(例如屏幕等串口设备)
▢ s:套接口文件
●基本权限:
▢读(r/-):Read如文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
▢写(w/-):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
▢执行(x/-):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
▢'-'表示不具有该权限
4.2.3文件权限的表示方式
●字符表示方法
●8进制数值表示方法
4.2.4文件访问权限的相关设置方法
4.2.4.1chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
●R -递归修改目录文件的权限
●说明:只有文件的拥有者和root才可以改变文文件的权限
chmod命令权限值的格式:
●用户表示符+/-=权限字符
▢ +:向权限范围增加权限代号所表示的权限
▢ -:向权限范围取消权限代号所表示的权限
▢ =:向权限范围赋予权限代号所表示的权限
▢ 用户符号:
▨ u:拥有者
▨ g:拥有者同组用
▨ o:其它用户
▨ a:所有用户
▢例如:
▨chmod u+w /home/abc.txt
▨chmod o-x /home/abc.txt
▨chmod a=x /home/abc.txt
●三位8进制数字
▢例如:
▨chmod 664 /home/abc.txt
▨chmod 640 /home/abc.txt
4.2.4.2chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
例如:
●chown user1 f1.txt
●chown -R user1 filegroup1
4.2.4.3chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
例如:chgrp users /abc/f2
4.2.4.4umask
功能:
●查看或修改文件掩码
●新建文件默认权限为0666
●新建目录默认权限为0777
●但实际上创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建出来的权限为:mask&(~umask)
格式:umask权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
例如:
●umask //查看
●umask 044 //设置
4.2.5file指令
功能说明:辨识文件类型
语法:file [选项] 文件或目录…
常用选项:
●-c:详细显示指令执行过程,便于排错或分析程序执行的情形。
●-z:尝试去解读压缩文件的内容。
使用sudo分配权限
(1)修改/etc/sudoers文件分配文件
# chmod 740 /etc/sudoers
# vim /etc/sudoers
格式:接受权限的用户登录的主机=(执行命令的用户)命令
(2)使用sudo调用授权的命令
$ sudo -u 用户名 命令
例如:
$ sudo -u root /usr/sbin/useradd u2
4.2.6目录的权限
●可执行权限:若目录没有可执行权限,则无法cd到目录中
●可读权限:若目录没有可读权限,则无法用ls等命令查看目录中的文件内容
●可写权限:若目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件
也就是说只要用户具有目录的写权限,用户就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限。
貌似不太科学,张三创建的文件,为什么可以被李四删除?采用如下过程验证
[root@VM-0-6-centos usr]# chmod 0777 /home
[root@VM-0-6-centos usr]# ls /home -ld
drwxrwxrwx. 4 root root 4096 Jul 13 21:40 /home
[root@VM-0-6-centos usr]# touch /home/root.c
[root@VM-0-6-centos usr]# ls -l /home
total 8
drwx—— 2 lighthouse lighthouse 4096 Mar 20 22:53 lighthouse
-rw-r–r– 1 root root 0 Jul 16 00:24 root.c
drwx—— 5 sjx sjx 4096 Jul 15 20:34 sjx
[root@VM-0-6-centos usr]# su sjx
[sjx@VM-0-6-centos usr]$ rm /home/root.c
rm: remove write-protected regular empty file ‘/home/root.c’? y
[sjx@VM-0-6-centos usr]$ ll /home
total 8
drwx—— 2 lighthouse lighthouse 4096 Mar 20 22:53 lighthouse
drwx—— 5 sjx sjx 4096 Jul 15 20:34 sjx
为了解决这个不科学的问题,Linux引入了粘滞位的概念。
4.2.7粘滞位
[root@VM-0-6-centos /]# chmod +t /home //加上粘滞位
[root@VM-0-6-centos /]# ls -ld /home
drwxrwxrwt. 4 root root 4096 Jul 16 00:25 /home
[root@VM-0-6-centos /]# su sjx
[root@VM-0-6-centos /]# su sjx
[sjx@VM-0-6-centos /]$ rm /home/my.txt //sjx不能删除别人的文件
rm: remove write-protected regular empty file ‘/home/my.txt’? y
rm: cannot remove ‘/home/my.txt’: Operation not permitted
当一个目录被设置位“粘滞位”(用chmod+t),则该目录下的文件只能由
1.超级管理员
2.该目录的所有者删除
3.该文件的所有者删除
4.3关于权限的总结
●目录的可执行权限是表示你可否在目录下执行命令
●若目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录仍然有-r读权限
●而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
●所有在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档
网硕互联帮助中心



评论前必须登录!
注册