Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
命令:su [用户名]
功能:切换用户。
普通用户切普通用户要密码
普通用户切超级用户要密码
超级用户切普通用户不要密码
每个文件和目录都有一个所有者(owner)和一个所属组(group)。这些属性用于控制对文件的访问权限和管理。
所有者(owner)是指文件或目录的创建者(用户),他拥有对该文件或目录的完全控制权,包括读取、写入和执行权限。只有文件的所有者和root用户才能修改文件的所有者或所属组。
所属组(group)是指文件或目录所属的组,组内的用户拥有与所属组相关的一些权限。例如,如果一个文件的所属组是"developers",那么属于"developers"组的用户可能具有对该文件的读取和写入权限。(可能的含义是如果不做额外设置,同一组内成员对同一文的权限相同)
文件类型(记不住哒,知道就行)
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt
chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
常用选项:-R 递归修改文件或目录的拥有者
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
file
功能说明:辨识文件类型。
语法:file [选项] 文件或目录…
文件配置分配权限
(很难记住,知道有配置文件可以分配不同用户的登录、执行指令权限即可)
sudo visudo // 进入配置文件
username ALL=(ALL:ALL) command
其中,username是要分配权限的用户名,command是允许执行的命令(因为平时执行的指令都是由环境变量自动补全,所以不用写出完整指令路径,这里要写出指令的完整路径)。
bob ALL=(ALL:ALL) ALL
在sudoers文件中,(ALL:ALL) 表示允许用户在任何主机以任何用户身份执行任何命令。让我们对这个语法进行解释:
第一个 ALL 表示允许用户在任何主机上执行命令。
第二个 ALL 表示允许用户以任何用户身份执行命令。
第三个 ALL 表示允许用户执行任何命令。
示例:
示例:
bob ALL=(root:root) /bin/ls:允许用户bob在任何主机上以root用户身份执行/bin/ls命令。
bob localhost=(root) /sbin/reboot:允许用户bob在本地主机上以root用户身份执行/sbin/reboot命令。
bob ALL=(ALL:ALL) NOPASSWD: /usr/bin/apt-get:允许用户bob在任何主机上以任何用户身份执行/usr/bin/apt-get命令,而且无需输入密码。
sudo指令分配权限
示例:
/usr/sbin/useradd u2
解释一下该命令的各个部分:
sudo:表示以超级用户(root)的身份执行命令。
-u root:表示以root用户的身份执行命令。这是通过sudo命令指定要切换的用户。
/usr/sbin/useradd:是要执行的命令,即创建用户的命令。(要写出指令的完整路径)
u2:是要创建的用户名
umask
功能;查看或修改文件掩码
格式:umask 权限值
说明:
将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
户默认为0002。
新建文件夹默认权限=0666, 新建目录默认权限=0777 , 实际创建的出来的文件权限是: mask & ~umask .
(即如果掩码为0022时创建出来目录的权限值为 0 7 5 5 ,即d rwx r-x r-x)
# umask //查看
# umask 044//设置
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
概述:可以防止其他用户删除粘滞位目录内用户的文件,如果其他用户具有对文件的写权限,其他用户仍然可以修改文件内容。
用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。
上述情况可以发生,为了防止这种现象发生,可以设置粘滞位,粘滞位(Sticky Bit)是一种特殊的权限位,用于设置目录的权限。当粘滞位被设置在一个目录上时,只有目录的所有者、文件的所有者和超级用户才能够删除或重命名目录中的文件’
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除/重命名
二、该目录的所有者删除/重命名
三、该文件的所有者删除/重命名
记忆:超级管理员是国家、目录所有者是土地局、文件所有者是
设置粘滞位的方法示例:
使用数字模式设置粘滞位为 t:
chmod 1777 directory_name
使用符号模式设置粘滞位为 t:
chmod +t directory_name
使用符号模式设置粘滞位为 T:
chmod +T directory_name
请注意,只有对目录设置粘滞位才有意义,对于文件来说是没有作用的。此外,粘滞位只对目录中的文件生效,对目录本身没有影响。