Linux权限管理基本知识
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux权限管理基本知识相关的知识,希望对你有一定的参考价值。
参考技术ALinux权限管理基本知识大全
Linux系统有什么基本权限,权限管理命令是什么?下面跟我一起来看看吧!
一、基本权限
linux权限机制采用UGO模式。其中 u(user)表示所属用户、g(group)表示所属组、o(other)表示除了所属用户、所属组之外的情况。
u、g、o 都有读(read)、写(write)、执行(excute) 三个权限,所以UGO模式是三类九种基本权限。
用命令 ls -l 可列出文件的权限,第一列输出明确了后面的输出(后面一列代表 ugo权限)。第一个字母对应的关系:
“-” 普通文件
“d” 目录
”l“ 符号链接
”c“ 字符设备
"b" 块设备
"s" 套接字
"p" 管道
修改文件或目录的所属用户: chown 文件名 | 目录名 用户
-R 该参数以递归的方式修改目录下所有文件的所属用户,参数可以敲 chown --help 查看。
修改文件或目录的所属组: chgrp 文件名 | 目录名 组名
-R 该参数以递归的方式修改目录下的所有文件的\'所属组。
命令chmod 用来修改文件或目录的权限: chmod -参数 模式 文件 | 目录
例子: 修改目录 log下所有文件的权限为700
chmod -R 700 log
注:700的来历是 u g o
rwx rwx rwx
111 000 000
关于 chmod 命令的权限模式除了数字表示,还可以是 u、g、o 、a 加 +、- 来表示。格式如下:u、g、o分别代表用户、属组和其他,a 就是
all ,可以代替ugo。 +、- 代表增加或删除对应的权限,r、w、x 代表三种权限,分别是读、写、执行。
例子:对于目录 log下的所有文件(已有权限是700)增加所属组(g)的读(r)、执行(x)权限。
chmod -R g+rx log
类似的命令可能还有很多,这里只是举几个最基本且常用的例子。很多命令用到时,再去查也可以。还可参考《鸟哥的Linux私房菜》。
二、特殊权限
Linux的3个特殊的权限,分别是setuid、setgid和stick bit。
setuid权限(S):只有用户可拥有,出现在执行权限(x)的位置。
setuid权限允许用户以其拥有者的权限来执行可执行文件,即使这个可执行文件是由其他用户运行的。
setgid权限(S):对应于用户组,出现在执行权限(x)的位置。
setgid权限允许以同该目录拥有者所在组相同的有效组权限来允许可执行文件。但是这个组和实际发起命令的用户组不一定相同。
stick bit (t /T):又名粘滞位,只有目录才有的权限,出现在其他用户权限(o)中的执行位置(x)。当一个目录设置了粘滞位,只有创建了该目录的用户才能删除目录中的文件,但是其他用户组和其他用户也有写权限。使用 t 或 T来表示。若没有设置执行权限,但是设置了粘滞位,使用 t;若同时设置了执行权限和粘滞位使用 T。典型的粘滞位使用是 /tmp 目录,粘滞位属于一种写保护。
设置特殊权限:
setuid: chmod u+s filename
setgid: chmod g+s directoryname
stick bit: chmod o+t directoryname
用数字表示特殊权限,是在基本权限之上的。浊嘴笨腮说不清楚,看例子:
例子:将上面例子中的log日志目录(已有权限 700)权限设置为755。特殊权限是类似 /tmp目录的 stick bit有效。
特殊权限 基本权限
setuid setgid stick bit user group other
0 0 1 rwx rwx rwx
111 000 000
所以,设置特殊权限(stick bit)的命令应该是:chmod 1755 log
设置特殊权限后,ls -dl 查看该目录:drwxr-xr-t 2 gg gg 4096 5月 11 19:05 log ( 注意 other 的 x 位是代表特殊权限的字母 t )
取消该特殊权限的命令:chmod 755 log 。如此 stick bit的权限就没有了。
再次 ls -dl 查看该目录: drwxr-xr-x 2 gg gg 4096 5月 11 19:15 log ( 注意最后一位已经变为代表普通权限的字母x )
需要注意的是,最前面一位 ”1“ 就是特殊权限位。其他两个特殊权限的设置也类似。setuid使用不是无限制的。出于安全目的,只能应用在Linux ELF格式二进制文件上,而不能用于脚本文件。
三、高级权限
ACL(Access Control List),访问控制列表是Linux下的的高级权限机制,可实现对文件、目录的灵活权限控制。ACL 允许针对不同用户、
不同组对同一个目标文件、目录进行权限设置,而不受UGO限制。
在一个文件系统上使用ACL需要在挂载文件系统的时候打开ACL功能。而根分区(ROOT)默认挂载的时候支持ACL。
命令:mount -o acl /挂载路径
例子:mount -o acl /dev/sdb1 /mnt
查看一个文件的ACL设置的命令: getfacl file
(针对一个用户)为一个文件设置指定用户的权限的命令: setfacl -m u:username:rwx filename
(针对一个组)为一个文件设置指定组的权限的命令: setfacl -m g:groupname:r-x filename
删除一个ACL设置的命令: setfacl -x u:username filename
;Linux权限管理之基本权限
参考技术A (Linux权限管理之基本权限-慕课网 http://www.imooc.com/learn/481 )一、文件基本权限
1、基本权限的修改
-rw-r--r--
- 文件类型(- 文件 d 目录 l 软链接文件)
rw- u所有者
r-- g所属组
r-- o其他人
r 读
w 写
x 执行
chmod命令
chmod [选项] 模式 文件名
- 选项
-R 递归
- 模式
[ugoa] [+-=] [rwx]
[mode=421]
chmod u+x cangls.av
chmod g+w o+w furong.av
chmod a=rwx fengjie.av
#创建新文件
[root@localhost ~]# touch cangls.av
[root@localhost ~]# ll
#所有者添加执行权限
[root@localhost ~]# chmod u+x cangls.av
[root@localhost ~]# ll
#所属组和其他人添加写权限
[root@localhost ~]# chmod g+w,o+w cangls.av
[root@localhost ~]# ll
#所有者减去执行权限,所属组和其他人减去写权限
[root@localhost ~]# chmod u-x,g-w,o-w cangls.av
[root@localhost ~]# ll
#所有者添加读写执行权限,所属组添加读写权限
[root@localhost ~]# chmod u=rwx,g=rw cangls.av
[root@localhost ~]# ll
#所有人赋予读写权限
[root@localhost ~]# chmod a=rw cangls.av
[root@localhost ~]# ll
r ----4
w ----2
x ----1
rwxr-xr-x
7 5 5
#所有者赋予读写执行权限,所属组和其他人赋予读执行权限
[root@localhost ~]# chmod 755 cangls.av
[root@localhost ~]# ll
#改为普通文件权限
[root@localhost ~]# chmod 644 cangls.av
[root@localhost ~]# ll
777(文件最高权限)
644(普通文件权限)
755(所有者赋予读写执行权限,所属组和其他人赋予读执行权限)
r:读取文件的内容(cat more head tail)
w:编辑、新增、修改文件内容(vi echo),但是不包含删除文件;
x:可执行
r:可以查询目录下文件名(ls)
w:具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切(touch rm mv cp)
x:可以进入目录(cd)
对文件来讲:最高权限是x(执行)
对目录来讲:最高权限是w(写),能赋予的权限只有0,5,7
#创建普通用户user1
[root@localhost ~]# useradd user1
#创建普通用户密码user1
[root@localhost ~]# passwd user1
更改用户 user1 的密码 。
新的 密码:123
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:123
passwd: 所有的身份验证令牌已经成功更新。
chown 用户名 文件名
例如:chown ds fengj.av
chgrp 组名 文件名
例如:chgrp group1 fengj.av
要求:
拥有一个av目录
让加藤老师拥有所有的权限
让本课程学员有查看的权限
其他所有人不许查看这个目录
#创建目录
[root@localhost ~]# mkdir av
#查看
[root@localhost ~]# ll -d av
[root@localhost ~]# useradd jt
[root@localhost ~]# passwd jt
更改用户 jt 的密码 。
新的 密码:
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
#添加组
[root@localhost ~]# groupadd user
#把user1用户加到user组里面
[root@localhost ~]# gpasswd -a user1 user
Adding user user1 to group user
[root@localhost ~]# chown jt:user av
[root@localhost ~]# ll -d av
#其他人改为0权限
[root@localhost ~]# chmod 750 av
[root@localhost ~]# ll -d av
#查看默认权限
[root@localhost ~]# umask
0022
第一位0:文件特殊权限
022:文件默认权限
文件默认不能建立为执行文件,必须手工赋予执行权限;
所以文件默认权限最大为666;
默认权限需要换算成字母再相减;
建立文件之后的默认权限,为666减去umask值;
例如:
文件默认最大权限666,umask值022;
-rw-rw-rw-减去-----w--w-等于-rw-r--r--
例如:
文件默认最大权限666,umask值033
-rw-rw-rw-减去-----wx-wx等于-rw-r--r--
目录的默认权限最大为777;
默认权限需要换算成字母再相减;
建立文件之后的默认权限,为777减去umask值;
例如:
目录默认最大权限为777,umask值022;
-rwxrwxrwx减去-----w--w-等于-rwxr-xr-x
临时修改
umask 0002
永久修改
vi /etc/profile
以上是关于Linux权限管理基本知识的主要内容,如果未能解决你的问题,请参考以下文章