1.什么是权限?
对于像我一样的Linux小白来说,经常听到同事讨论什么权限管理,而我只能黑人问号脸?他们在讨论什么?user?group?这玩意有嘛用?今天,就让我们来从头捋一遍,用最通俗易懂的方式来解释这个难点,保证你看完此文明明白白的。
权限:一般Linux中讨论的都是针对文件/目录的权限控制,即谁可以控制?哪些人可以控制?
首先要知道两个术语:user和group,站住!!!别跑,请耐心看完此文!
2.user和group
用户:user,就是用于登录的用户,这个很好理解,比如root,当然也可以添加用户
useradd stu1 //创建用户stu1
passwd stu1 //修改用户stu1的密码,然后就可以用stu1和新密码登录了
组:group,其实类似角色,可以把相似的用户放入一个group里,便于集体进行权限管理
groupadd student //创建组student
usermod -g student stu1 //将stu1放入student组
当然,也可以在创建用户时就指定组(前提是组存在)
useradd -g student stu2 //创建用户stu2,并放入student组
以上user与group关系可用图表示:
//补充,可跳过
cat /etc/passwd //可以查看所有用户
cat /etc/group //可以查看所有组
id stu1 //可以查看用户stu1的简要信息
3.文件详情解读
好了,到这里我们就该去了解一下Linux中的权限管理了,也就是文件/目录的权限,
ls -al //ls显示文件列表,-a显示所有文件(包括隐藏文件.和..),-l显示文件详细信息
结果如图所示(部分截图)
以制表符分隔,可以看出该结果由以下七部分组成
【文件权限】【文件数量】【文件所有者】【文件所在组】【文件大小】【最后更新时间】【文件】
最后三个部分不解释,一目了然。
【文件权限】第4节详细介绍
【文件数量】文件类型(如txt)则为1,目录类型(如bin)则为子目录数量
【文件所有者】默认文件创建时的登陆user即为文件所有者
【文件所在组】默认文件创建时的登陆用户所在group即为文件所在组
su - stu1 //切换到stu1用户
touch stu1.txt //创建stu1.txt
ls -al //结果如下图
可以看出文件stu1.txt的【文件所有者】为stu1,【文件所在组】为stu1所在组student
//补充,文件的【文件所有者】【文件所在组】是可以修改的
chown stu2 stu1.txt
chgrp root stu1.txt
stu1.txt修改成功
4.文件权限——查看(重点!!!)
好了,前面铺垫了那么多,该到重点,难点,考点了。
ls -al的结果【文件权限】最前面的10个符号是什么意思?
如:d rwx rw- r–
第0位:【文件类型】有五个取值
- 常见:d(目录),-(文件)
- 不常见:c(字符设备键盘/鼠标),l(软链接),b(块文件/硬盘)
第1-3位:【文件所有者】权限
第4-6位:【文件所在组】权限
第7-9位:【其他人】权限
其实1-9每位有四个取值:r读 w写 x执行 -该位置不赋权限
到这里【d rwx rw- r–】就很好理解了,
文件类型 为d【目录】
文件所有者 有rwx【读/写/执行】权限
文件所在组 有rw【读/写】权限
其他人 有r【读】权限
5.文件权限——修改(重点!!!)
有时候我们需要改变【文件所有者owner】【文件所在组group】【其他人other】对文件的权限
第一种:= + -
chmod u=rwx,g=rw,o=r stu1.txt //=是直接赋予权限
chmod u+x,g+r stu1.txt //+是原有权限上添加权限
chmod u-x,g-r stu1.txt //-是原有权限上删除权限
chmod a+x //a代表所有人all
第二种(常用):数字法,r=4,w=2,x=1,即rwx为4+2+1=7,rx为4+1=5,无权限为0
chmod 777 stu1.txt //等价于u=rwx,g=rwx,o=rwx
chmod 764 stu1.txt //等价于u=rwx,g=rw,o=r
OK,到这里,Linux权限管理的基本内容就介绍完了,小伙伴们应该了解了user,group,文件权限查看,权限修改等知识,这下可以愉快地ls -al了,微笑。