Linux用户及权限管理
当我们用ls -al查看一个文件的详细信息的时候会显示出一个有七个字段的文件详细信息,现在我们来了解下这七个字段各自代表的意义
drwxr-xr-x 18 root root 4096 12月 16 15:25 .config
我们先来说明这七段分别表示什么每个字段我们用 | 隔开
drwxr-xr-x | 18 | root | root | 4096 | 12月 16 15:25 | .config
第一段:文件的类型和权限 有10个字段
第一个字符表示文件类型-:表示文件d:表示目录l:表示链接文件b:块设备文件p:命名管道s:套接字文件
文件权限
后面的九位表示文件的权限
左三位:定义文件所有者的权限
中三位:同组用户的权限
右三位:其他用户的权限
这里三位权限分别为:
r:read,读
w:write,写
x:execute,可执行
这里的权限对应到文件和目录是不同的
文件的权限含义:
r:可获取文件的数据
w:可修改文件的数据
x:可将此文件运行为进程
目录的权限含义:
r:可获取到目录下的文件列表
w:可修改此目录下的文件列表,即可创建或删除文件
x:可切换到此目录下,也可使用ls -l 来获取所有文件的详细属性
文件的基本权限就只有九个,分别是owner,group,others三种身份,而他们各自又有属于自己的r w x 权限那么我们可以用数字来代表各自的权限。他们各自的这三个权限数字又是累加的
对照下面就是
r:4
w:2
x:1
那么例如权限为[-rwxrwx—]的话那他们各自身份的权限表示为
owner=rwx=4+2+1=7
write=rwx=4+2+1=7
others=—=0+0+0=0
那么文件的权限就是770
练习:[rw-rw-r–] [rwxrwxrwx] [r-x-wx–x]
664,777,531
文件的默认权限:umask
我们知道了文件的权限,那么我们在新建一个文件或者目录的时候他的默认权限是什么呢?默认权限是跟umask相关的
[root@localhost ~]# umask 0022
我们这显示的数字是四位,但是我们文件或目录的普通权限只有三位.需要说明的是这前面一位是特殊权限位.后面会加以说明
umask码的默认值是需要减掉的权限,所以说要减去2的权限就是x执行的权限 所以新建文件或者目录的默认权限如下“
新建文件时:(-rw-rw-rw-)-(—–w–w-)=-rw-r–r–
666-umask
新建目录时:(drwxrwxrwx)-(d—-w–w-)=drwxr-xr-x
777-umask
注意:这里文件之所以用666区减表示文件默认不能拥有执行权限,如果减得的结果中有执行权限,则需要将其加1
第二段:文件链接数
表示有多少个文件链接到此节点
第三段:文件或目录的所有者
第四段:这个文件所属的用户组
第五段:文件的大小
默认单位为B
第六段:文件创建日期或者修改日期
第七段:文件名
.代表的是隐藏文件!ls -a可以查看所有文件包括隐藏文件
Linux文件权限管理命令
chmod:更改文件的权限 chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE.. 三类用户: u:属主 g:属组 o:其他 a:所有用户 (1) chmod [OPTION]... MODE[,MODE]... FILE... MODE表示法: 赋权表示法:直接操作一类用户的所有权限位 u=7 读写执行 g=0 没有权限 o=1 执行权限 a=701 属主读写执行,属组没有权限,其他执行权限 授权表示法:直接操作一类用户的一个权限位 u+,u- u-x 属主减去执行权限 g+,g- g+r 属组增加读权限 o+,o- o-w 其他减去写权限 a+,a- a-x 所有用户都减去执行权限 -R:递归修改 chown:改变文件的所有者 chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE... -R:递归修改 chgrp:改变文件属组 chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE... -R:递归修改 umask: umask:查看当前umask码 umask MASK:设置umask码 install:复制文件并设置属性 单源复制: install [OPTION]... [-T] SOURCE DEST 多源复制: install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... 创建目录: install [OPTION]... -d DIRECTORY... -m:设定目标文件的权限,默认为755 -o:设定目标文件属主 -g:设定目标文件属组 mktemp:创建临时文件或目录 mktemp [OPTION]... [TEMPLATE] -d:创建临时目录 注意:mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存起来;
练习:完成以下任务 1、新建系统组mariadb, 新建系统用户mariadb, 属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看其命令提示符;
useradd -r mariadb -s /sbn/nologin -M
2、新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;
groupadd -g 5000 mageedu
useradd -d /users/gentoo gentoo
echo “gentoo” | passwd –stdin gentoo
3、新建用户fedora,其家目录为/users/fedora,密码同用户名;
useradd -d /users/fedora fedora
echo "fedora" | passwd –stdin fedora
4、新建用户www, 其家目录为/users/www;删除www用户,但保留其家目录;
useradd -d /users/www
userdel www
5、为用户gentoo和fedora新增附加组mageedu;
groupadd mageedu
usermod -aG mageedu gentoo
usermod -aG mageedu fedora
6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为mageedu,并让属组对目录本身拥有写权限;
cp -r /var/log /tmp/
chown -R /tmp/log mageedu
chmod -R g+w
原创文章,作者:N24-执念,如若转载,请注明出处:http://www.178linux.com/64231