一、权限位
[root@songxioakun ~]# ll
总用量 20
-rwxrwxrwx. 1 root root 49 4月 5 18:34 abc
权限位有十位:
- - rwxrwxrwx 第一位:代表文件类型
- | 表示普通文件 |
---|---|
d | 表示目录文件 |
l | 表示连接文件 |
b | 表示块设备文件(存储设备都是这种文件,如分区文件 /dev/sda1 就是这种文件) |
c | 表示字符设备文件(输入设备一般都是这种文件,如鼠标、键盘等) |
s | 套接字文件(一些服务支持 Socket 访问,就会产生这样的文件) |
p | 管道符文件,很少见 |
- -rwxrwxrwx
剩下9位 每三位为一组,分别代表 属主权限u,属组权限g,其他人权限o
rwx分别代表读、写、可执行,三个权限,如果没有该权限则用 - 表示
权限对文件的意义
r | read,读取权限,可以用cat、more、head、tail等命令查看读取 |
---|---|
w | write,写权限,可新增、修改文件内容,可以用vi,echo等命令 。但不包括删除文件 |
x | execute,执行权限 |
注:如果想删除文件 ,必须对上级目录文件有写入权限,写入权限只是修改文件内容,而文件的文件名iNode号存在上级目录的block中
- -rwxrwxrwx .
权限位后边的点表示,有这个点表示这个文件受SElinux的安全规则管理。
二、权限修改
格式:chmod 要改的权限 文件名
要改的权限:目标+(-)权限
属主用u表示,属组用g表示,其他人用o表示
命令 | 意义 |
---|---|
chmod u+x aa | 给aa文件属主加上执行权限 |
chmod g-r aa | 给aa文件属组去掉执行权限 |
chmod g+w,o+w aa | 同时给属组和其他人加上写入权限 |
chmod u=rwx aa | 直接给aa文件属主指定权限 |
chmod 755 aa | 用对应数字直接给aa文件的属主、属组、其他人权限 |
通过4、2、1来表示rwx,有几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)
常用权限:
644 文件的标准权限 -rw-r–r--.
755 目录的标准权限 drwxr-xr-x.
777 最大权限 -rwxrwxrwx.
注:当用户既是所有者又是所属组中成员的情况下,遵守所有者权限。root超级用户不受权限限制
权限对目录的意义
r | read,可以查询目录下文件名,如ls |
---|---|
w | write,具有修改目录结构的权限,如新建文件和目录,删除此目录下的文件和目录,重命名或剪切此目录下的文件和目录,touch、rm、vm、cp等 |
x | execute,可以进入目录,cd。 |
目录可用权限:
0(最小权限)、5(标准权限)、7(最大权限)
其他12346没有意义,因为目录没有执行权限根本进不去目录
默认权限
Linux中也有默认权限:目录默认755 、文件默认644。
新建文件最大默认权限是666,因为执行权限必须手工赋予。
Linux通过umask权限来保证所有文件和目录有默认权限
umask | 可以查看系统当前用户umask值 |
---|---|
umask -S | 以字母形式显示权限,S大写。 |
umask 0002 | 临时修改umask值为0002 |
超级用户的umask默认是0022
普通用户的umask默认是0002
umask值算法
一个文件最大默认权限是666,umask值为0022的话,那么默认权限就是644。(目录最大默认权限是777)
666-022=644(换成字母表示去运算)
-rw-rw-rw-.——-----w–w-.——>-rw-r–r--.
这里计算机实际是用二进制做逻辑与和逻辑非的联合运算得到的目录和文件的默认权限
umask值永久修改,在/etc/profile 环境变量配置文件中添加:
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then #判断用户UID是否大于199
umask 002 #大于则umask设置为002
else
umask 022 #否则umask设置为022
fi
[root@songxioakun ~]# umask
0022
[root@songxioakun ~]# touch aa
[root@songxioakun ~]# ll
总用量 20
-rw-r--r--. 1 root root 0 4月 8 18:03 aa
注:文件的权限所有者和超级用户都可以修改,但属主和属组只有超级用户可以修改
三、属主和属组命令
[root@songxioakun ~]# ll
总用量 20
-rwxrwxrwx. 1 root root 49 4月 5 18:34 abc
属主 属组
格式:
chown 用户名 文件名 修改属主
chgrp 组名 文件名 修改属主
命令 | 意义 |
---|---|
chown user1 aa | 把aa文件的属主,设置为user1,前提是user1必须存在 |
chown user1:group1 aa | 同时把aa文件的属主改为user1,属组改为group1,这个冒号:也可以用点. |
- 创建用户
useradd 用户名 #添加用户
passwd 用户名 #给这个用户设置密码
未完待更。。。。。。