linux权限详解 linux修改权限777
linux下账户的权限是:drwx--- 表示是那些权限
首先d表示这个文件是一个文件夹,然后文件的权限一共有9个字符表示,分成三组,分别表示文件所属用户的权限,文件所属用户组的权限,其他人的权限,r表示读权限, w表示写权限, x表示执行权限,你给的这个例子就是说这是个文件夹,并且此文件所属用户拥有读、写、执行三项权限,其余的用户组,其他用户不拥有任何权限(全部都是-)
linux中多用户以及权限的理解
linux操作系统是多用户管理系统,管理起来非常麻烦,所以用组的概念来管理用户就变的简单多了,一个用户可以属于多个组,一个组可以有多个用户,用户和组是多对多的关系。
linux的多用户多分组管理系统都是针对文件来说的,每个文件都有所属的用户和所属的分组。
linux系统是根据用户UID来识别用户的,并不是根据用户名。linux用户分为以下3种
每行数据为一个用户,可以看到红色部分为root超级用户,蓝色部分为系统用户,绿色部分为普通用户。
我们可以看到该文件属于root用户和root组。然后root用户权限是rw-,root组内成员的权限是r--,而其他用户的权限是r--。由于其他用户的权限都是r--,所以任何用户都是可以读的。
在/etc/group文件中存储着系统的所有组,查看文件内容,如下图
大致分为4段
我们可以看到图中mail分组的第4段有值为postfix,也就是postfix用户应该有俩个分组,一个初始组和一个附属组,我们执行以下命令验证
用户密码文件shadow和组密码文件gshadow的权限都是000,所有其他用户是不能查看的,只有root用户才可以查看,root用户也是不能修改该文件的。
使用 whoami命令查看。
postfix用户有俩个所属组postfix和mail。由此可见, uid是指用户id(用户名称),gid是指初始组id(初始组名称),groups是指包括初始组在内的所有组id(所有组名称)
我们知道了/etc/group文件的第四段为组内成员,所有我们可以通过 grep来匹配相关组。比如查询mail组内的所有成员,命令如下,可以看到mail组内有mail,postfix和tom3个用户。
上面是一种方法,我们也可以直接使用命令来查看。
添加用户只能root用户来添加,普通用户没有权限,添加用户有俩种方式
在centos系统下,这俩种方式没有区别,都会在/home下自动创建与用户名同名的用户目录,且都是需要使用 passwd userName命令来设置用户密码的,只有设置完密码后才可以正常登录。
在unbantu系统下,这俩种方式是有区别的,使用 useradd userName命令不会在/home下自动创建与用户名同名的用户目录,且不会自动选择shell版本,后续也是需要使用 passwd username来设置密码的。而使用 adduser userName命令的话是会在/home目录下自动创建与用户名同名的用户目录,也会自动选择shell版本,且会自动提示输入用户密码,对用户比较友好,后续不需要在使用passwd来设置密码。
删除用户,并不会删除用户相关的文件
删除用户且一起删除家目录
格式如下:
参数如下:
-g指定组(只有root可以使用)
-a指定用户加入组
-d从组中删除该用户
-p从组中清楚所有成员
-l显示组成员列表
linux中每个文件都是有权限的。每个文件都有自己的所属用户和所属组,且拥有所属用户权限,所属组权限和其他权限3种。
权限一般分为读,写,执行3种,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的操作。
目录有x权限才可以cd进入该目录。目录有r权限才能在该目录中使用ll或者ls查看目录。一个目录中的文件能否被删除或者创建取决于该目录是否有w权限。
执行ll命令后显示如下,我们解读一下
从左到右发现一共有7段
然后执行如下命令
test文件的权限改为
常用的参数为-R,常用于修改目录权限,该参数表示为该目录以及目录下的所有子文件都修改为相同的权限。
然后执行如下命令
再次查看test文件
常用的参数为-R,常用于修改目录,该参数表示为该目录以及目录下的所有子文件都修改为相同的用户及用户组。
想切换到root用户,直接使用su命令即可
Linux权限管理基本知识
Linux权限管理基本知识大全
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
;