linux 权限管理?ubuntu权限
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
;
linux文件权限管理(超详细)
在linux系统中,我们想看一些资源的权限常会使用 ls-a来显示资源的列表以及他们各自对应的权限,但是有的时候看到那每一行开头的字母是不是会有点懵逼 drwxr-xr-x或者 drwx------等等
文件或目录的权限可以分为3种:
常见的linux文件权限,数字和字母对应:
从左至右,
1-3位代表文件所有者的权限,
4-6位代表同组用户的权限,
7-9位代表其他用户的权限。
,看两个例子如下:
644
1-3位6等于4+2+0,rw-,所有者可读、可写、不可执行
4-6位4等于4+0+0,r--,同组用户仅可读
7-9位4等于4+0+0,r--,其他用户仅可读
755
1-3位7等于4+2+1,rwx,所有者可读、可写、可执行
4-6位5等于4+1+0,r--,同组用户可读、不可写、可执行
7-9位5等于4+1+0,r--,其他用户可读、不可写、可执行
Linux中如何把普通用户提升为root用户权限
在Linux系统中,拥有root用户权限是进行系统管理工作的必备条件。通常情况下,普通用户只有特定权限,无法执行需要root权限的操作。然而,当需要执行系统级别的操作时,如修改系统配置文件或安装软件,就需要提升权限。
实现这一目标的途径之一是修改/etc/passwd文件。具体操作是将需要提升权限的用户的UID和GID均改为0。这样做可以赋予该用户root权限。
此外,值得注意的是,对于/etc/group文件,是否进行修改取决于实际需求。通过测试发现,即使不修改/etc/group文件,系统依然能够识别并赋予用户root权限。当然,如果修改了/etc/group文件,也不会产生负面影响,依然能够正常使用。
但是,这种方法并不推荐作为常规操作。因为直接修改/etc/passwd和/etc/group文件可能会对系统安全性和稳定性造成潜在风险。因此,建议使用更安全的机制,如sudo工具,来临时提升普通用户的权限。
使用sudo工具时,用户需要在/etc/sudoers文件中进行配置,指定哪些用户可以使用sudo命令以及允许执行哪些命令。这样,系统管理员可以更精细地控制哪些用户拥有哪些权限,从而提高系统的安全性和管理效率。
总之,在Linux系统中,通过修改/etc/passwd文件可以临时赋予普通用户root权限,但这并不是推荐的做法。使用sudo工具进行权限管理更为安全和灵活,能够更好地满足日常管理和维护需求。