Linux基础之权限操作

Linux权限管理是Linux中一个十分重要的概念,也是系统安全性的重要保障。这里主要介绍Linux的基本权限和默认权限,通过理论讲解与实验演示,可以详细了解到权限的相关操作及其重要性。

文件权限

[[email protected] ~]# ls -l /etc/passwd
-rw-r–r–. 1 root root 2133 Apr 16 11:33 /etc/passwd
[[email protected] ~]#

文件的权限:所有者,所属组,其他人
rwx,读、写、执行,没有权限就是“-”
第一个组rwx:文件所有者的权限
第二个组rwx:文件所属组的权限
第三个组rwx:文件其他人的权限

目录的权限:linux权限管理
r:具有读取目录结构列表的权限,可以查看目录下有哪些文件
w:该权限对于目录来说是很大的,
1、可以在该目录下新建新的文件和目录
2、可以删除已经存在的文件和目录
3、将已经存在的文件和目录重命名
4、移动目录内的文件和目录的位置
x:是否可以进入该目录

修改权限

chown命令:修改文件的拥有者,前提是要有该拥有者(-R 递归修改)

[[email protected] tmp]# tail -1 /etc/passwd
linux00:x:1001:1001::/home/linux00:/bin/bash
[[email protected] ~]# cd /tmp/
[[email protected] tmp]# touch file1
[[email protected] tmp]# ll file1
-rw-r–r–. 1 root root 0 Apr 26 08:56 file1
[[email protected] tmp]# chown linux00 file1
[[email protected] tmp]# ll file1
-rw-r–r–. 1 linux00 root 0 Apr 26 08:56 file1
[[email protected] tmp]#

chgrp命令:修改文件所属组,前提是要有该组(-R 递归修改)

[[email protected] tmp]# tail -1 /etc/group
xiuyuan:x:1002:
[[email protected] tmp]# ll file1
-rw-r–r–. 1 linux00 root 0 Apr 26 08:56 file1
[[email protected] tmp]# chgrp raoxiuyuan file1
[[email protected] tmp]# ll file1
-rw-r–r–. 1 linux00 xiuyuan 0 Apr 26 08:56 file1
[[email protected] tmp]#

chmod命令:修改拥有者和所属组的权限
● 加减法:u/g/o +/-/= r/w/x
● 数字法:r=4,w=2,x=1

[[email protected] tmp]# ll file1
-rw-r–r–. 1 linux00 root 0 Apr 26 08:56 file1
[[email protected] tmp]# chmod g+w file1
[[email protected] tmp]# ll file1
-rw-rw-r–. 1 linux00 root 0 Apr 26 08:56 file1
[[email protected] tmp]# chmod g-w file1
[[email protected] tmp]# ll file1
-rw-r–r–. 1 linux00 root 0 Apr 26 08:56 file1
[[email protected] tmp]# chmod o=rwx file1
[[email protected] tmp]# ll file1
-rw-r–rwx. 1 linux00 root 0 Apr 26 08:56 file1
[[email protected] tmp]# chmod 777 file1
[[email protected] tmp]# ll file1
-rwxrwxrwx. 1 linux00 root 0 Apr 26 08:56 file1
[[email protected] tmp]# chmod 764 file1
[[email protected] tmp]# ll file1
-rwxrw-r–. 1 linux00 root 0 Apr 26 08:56 file1
[[email protected] tmp]#

默认权限

umask:查看当前用户的umask权限;-S选项
0022—拿走的权限
第一个数字表示特殊权限
022=rwxr-xr-x

默认创建文件和目录的权限,文件回拿走x权限。

临时的修改:umask 0000
永久的修改:/etc/bashrc(不建议)

普通用户:002
root用户:022

[[email protected] tmp]# umask //查看用户的默认权限(Linux权限管理)
0022
[[email protected] tmp]# touch f1
[[email protected] tmp]# mkdir dir1
[[email protected] tmp]# ll
total 0
drwxr-xr-x. 2 root root 6 May 15 02:59 dir1 //创建的目录
-rw-r--r--. 1 root root 0 May 15 02:59 f1 //创建的文件,默认没有x权限
[[email protected] tmp]# umask
0022
[[email protected] tmp]# umask 000 //修改用户的umask
[[email protected] tmp]# umask
0000
[[email protected] tmp]# touch f2
[[email protected] tmp]# ll
total 0
drwxr-xr-x. 2 root root 6 May 15 02:59 dir1
-rw-r--r--. 1 root root 0 May 15 02:59 f1
-rw-rw-rw-. 1 root root 0 May 15 03:01 f2
[[email protected] tmp]# chmod u+x f2
[[email protected] tmp]# ll
total 0
drwxr-xr-x. 2 root root 6 May 15 02:59 dir1
-rw-r--r--. 1 root root 0 May 15 02:59 f1
-rwxrw-rw-. 1 root root 0 May 15 03:01 f2
[[email protected] tmp]# mkdir dir2
[[email protected] tmp]# ll
total 0
drwxr-xr-x. 2 root root 6 May 15 02:59 dir1
drwxrwxrwx. 2 root root 6 May 15 03:03 dir2
-rw-r--r--. 1 root root 0 May 15 02:59 f1
-rwxrw-rw-. 1 root root 0 May 15 03:01 f2
[[email protected] tmp]# umask 022
[[email protected] tmp]# umask
0022
[[email protected] tmp]# vim /etc/bashrc //永久修改umask
[[email protected] tmp]#
-S:以符号方式输出权限掩码

[[email protected] tmp]# umask -S
u=rwx,g=rx,o=rx
[[email protected] tmp]#

问:假设你的umask为003,请问该umask情况下,建立的文件和目录的权限分别为多少?
答:umask为003,所以拿掉的权限为——–wx,因此:
文件:(-rw-rw-rw-)-(——–wx)=(-rw-rw-r–)
目录:(drwxrwxrwx)-(d——-wx)=(drwxrwxr–)问:在什么情况下,要使用umask
答:假设你和同时在同一个目录下进行同一个项目的工作。如果使用默认权限022,那么你创建的文件,你的同事将无法编辑。因此我们可以将权限调整为002

文件的特殊权限(SUID、SGID、SBIT)

[[email protected] ~]# ls -ld /tmp/; ls -l /usr/bin/passwd
drwxrwxrwt. 11 root root 4096 May 15 03:38 /tmp/
-rwsr-xr-x. 1 root root 27832 Jan 29 2014 /usr/bin/passwd
[[email protected] ~]#
当s出现在拥有者的x权限位置时候,表示拥有者有SUID的权限(Set UID)[Linux权限管理]
当s出现在所属组的x权限位置时候,表示所属组有SGID的权限(Set GID)
当t出现在其他人的x权限位置时候,表示其他人有SBIT的权限(Sticky Bit)

SUID,临时获取文件所有者的权限—-只能针对文件
SGID,即可以作用于目录,也可以作用于文件
作用于文件:SUID一样
作用于目录:继承父级目录—目录会不停继承
SBIT,只有文件的拥有者,才能删除,修改该目录下的文件—只针对目录

S和T都有大写和小写之分
大写说明:没有x权限
小写说明:有x权限
SUID=4 SGID=2 SBIT=1

账户管理

/etc/passwd:记录linux上的所有账号
/etc/shadow:记录账户对应的密码
/etc/group:记录所有的组

[[email protected] ~]# vim /etc/passwd

/etc/passwd每条记录详解
linux00:用户名
X:早期这个部分放的是用户登入密码,现在密码放入/etc/shadow中
UID:0表示系统管理员,1-999保留给系统使用的ID,1000以上给一般使用者
GID:0表示系统管理员,1-999保留给系统使用的ID,1000以上给一般使用者
Linux00:使用者信息说明
/home/linux00:用户家目录,用户登入时,所在的目录
/bin/bash:用户在登入的时候,是否可以使用shell,如果不能使用shell,则会显示/sbin/nologin

账户和组名:给使用者看的
UID和GID:linux系统识别的

id命令:查看当前登入用户的UID和GID

[[email protected] ~]# id

如果随意修改/etc/passwd下的用户UID会发生什么情况(当我们使用ls -l的时候,系统会根据/etc/passwd和/etc/group文件的内容,找到UID和GID对应的名称,修改显示)

/etc/shadow每条记录详解
1.Root:用户名
2.一串红色的字:经过加密的密码
3.最近更改过密码的日期:linux中的日期,是通过1970年1月1日开始累加的日期
4.密码不能改修改的天数:0表示随时可以修改
5.密码需要重新被修改的天数:通过修改该值,可以强制用户修改密码
6.密码需要变更的告警天数:7天哪系统会向用户发出告警
7.密码到期还可以使用时间:密码到期后,账号可以使用的时间
8.账号实效日期:通过1970年1月1日开始累加的日期,到了时间后,无论密码是过期,该账号已经不能使用
9.保留

/etc/group每条记录详解
1.linux00:组名
2.X:组密码,一般不需要
3.1000:GID
4.组用户(附属组)
这些文件不建议直接进行修改,建议使用命令进行修改。

useradd命令:用于创建用户

[[email protected] ~]# useradd linux00

使用useradd命令创建用户后,默认进行一下几个操作:
1.在/etc/passwd下建立相关的资料
2.在/etc/shadow下写入密码的相关的参数
3.在/etc/group中写入和账号名一样的组
4.在/home/下创建用户的家目录

usermod命令:可以对已存在账户的信息进行修改

[[email protected] ~]# usermod -l linux00 user1

passwd命令:用于修改密码(所有人都可以用该命令修改自己的密码)

[[email protected] ~]# passwd linux00 //修改linux00用户的密码

chage命令:可以修改和密码有关的时间参数(-l:查看一个账户和密码有关的时间参数)

[[email protected] ~]# chage -l linux00

userdel命令:删除一个用户

要彻底删除一个账号,比较麻烦:
1.删除/etc/passwd;/etc/shadow文件中的内容
2.删除/etc/group;/etc/gshadow文件中的内容
3.删除/home/username;/var/spool/mail/username
4.删除该用户曾经来该linux中创建的文件(先用find命令进行查找,再删除)

[[email protected] ~]# userdel linux00 //删除1、2条中的信息3、4条中的信息依然存在
[[email protected] ~]# rm -rf /home/linux00 //手动删除家目录
[[email protected] ~]# rm -rf /var/spool/mail/linux00 //手动删除邮件目录

-r参数:连同家目录和邮箱一起删除

[[email protected] ~]# userdel -r linux00 //1、2、3内容全删除

ACL权限

ACL(Access Control List)访问控制列表,ACL的功能是应对复杂用户环境的权限问题。(Linux权限管理)

那么这玩意有啥用处呢?下面我们考虑一种场景:

假设我Jimmy创建了一个项目文件夹,我和我的开发团队Rocket对该目录均具备 rwx 的权限,因为我该文件夹下有源码等,不能对外开放,所以对其他用户的权限为0,即我的文件夹目录为 drwxrwx—;
然而有一天,我的一个灰常好的盆友Sherry想要看一下我的项目,看看我写的代码有多流弊,然而我不好意思拒绝,这个时候我有三种选择:

1.让其成为所有者(这个当然不可能)
2.让其成为项目组成员(然而她并没有参与开发,再说她也基本看不懂代码,万一不小心删掉了部分代码咋弄?)
3.给其它人赋以 r-x 的权限(然而,other用户太多了吧,万一我代码没发布就被竞争对手给copy了呢?)
看来,以上三种手段都不靠谱啊,怪就怪other的用户全太大了,唉,这可咋整?

那么,我们为什么不为Sherry开小灶呢?就是让其不属于任何一个组,只是以单用户的身份被赋予特定权限。
这种“开小灶”的方式,其实就是ACL权限!

ACL可以针对单一用户、单一文件或目录来进行r、w、x的权限设置,对于需要特殊权限的使用状况非常有帮助

setfacl命令: 设置文件或目录的ACL设置信息

[[email protected] tmp]# mkdir -m 770 project //创建其他人无权限操作的目录
[[email protected] tmp]# ll -d project/
drwxrwx---. 2 root root 6 May 16 23:39 project/
[[email protected] tmp]# su - linux00 //切换用户linux00
Last login: Wed May 16 23:37:52 EDT 2018 on pts/0
[[email protected] ~]$ cd /tmp/project/ //查看管理员创建的目录/tmp/project/
-bash: cd: /tmp/project/: Permission denied
[[email protected] ~]$ su -
Password:
Last login: Wed May 16 23:38:31 EDT 2018 on pts/0
[[email protected] ~]# cd /tmp/
[[email protected] tmp]# setfacl -m u:linux00:rx project/ //设置acl权限
[[email protected] tmp]# ll
total 4
drwxrwx---+ 2 root root 6 May 16 23:39 project //目录权限第11位有一个 + 号,代表的就是ACL权限
[[email protected] tmp]# su - linux00
Last login: Wed May 16 23:39:56 EDT 2018 on pts/0
[[email protected] ~]$ cd /tmp/project/ //linux00现在已经有权限可以访问project目录
[[email protected] project]$
getfacl命令: 获取文件或目录的ACL设置信息

[[email protected] tmp]$ getfacl project/
# file: project/
# owner: root
# group: root
user::rwx
user:linux00:r-x
group::rwx
mask::rwx
other::—

[[email protected] tmp]$

user:linux00:r-x: 表示linux00具备的ACL权限为 r-x
mask::rwx: 表示ACL的最大权限,用你分配给用户的权限与mask相与(类似于子网掩码)

setfacl -b命令:删除acl权限

[[email protected] tmp]# setfacl -b project/
[[email protected] tmp]# getfacl project/
# file: project/
# owner: root
# group: root
user::rwx
group::rwx
other::—

[[email protected] tmp]#

原文地址:https://www.cnblogs.com/zhangyufeng1/p/10010152.html

时间: 2024-10-12 22:05:10

Linux基础之权限操作的相关文章

linux基础知识---权限

权限 一.文件的基本权限 所谓的权限就是用户访问文件的能力,文件的基本权限包括 r(读),write(写),x(可执行). 用ls -ld file 查看文件的权限属性: drwxr-xr-x 4 root root 4096 Jul  3 21:29 file drwxr-xr-x:说明文件类型,常见的文件类型有:d 目录文件,l 链接文件,c 线性设备文件,b 块设备文件,s sorket文件,- 一般文件,p 管道文件 drwxr-xr-x:此文件(目录)属主用户权限 drwxr-xr-x

linux基础学习笔记——操作大全

作者:liaoyi 更新时间:2014-6-2 ****************基本操作***************** 关机 shutdown -h now    root用户               init 0              root用户halt      root+一般用户poweroff 重启shutdown -r now    root用户init6     root用户reboot            root+一般用户 注意:1.shutdown 比较灵活,可

(赵小明RHCE笔记)linux基础之四 权限详解

一.special permissions for executables1.special permissions for executables:  -suid:command run with permissions of the owner of the command,not executor of   the command  -sgid:command runs with group affiliation of the group of the commandeg:file:us

Linux基础系统权限

Linux基础系统权限 文件权限 Linux中,每个文件拥有三种权限 权限 对文件的影响 对目录的影响 r(读取) 可读取文件 可列出目录内容 w(写入) 可修改文件内容 可在目录中创建删除文件 x(执行) 可以修改文件内容 可访问目录内容 注意: 目录必须拥有x权限,否则无法察看其内容 UGO linux权限基于UGO模型进行控制 U代表User, G代表Group, O代表other 每一个文件的权限基于UGO进行设置 权限三个一组(rwx), 对应UGO分别设置 每个文件都有一个拥有者/用

Linux 基础入门----文件系统操作与磁盘管理

介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前面省略了关于 Linux 文件系统的一些基本知识,也因为我们是在线实验环境,所以也避开了很少一部分但又十分重要的关于硬件的内容,我们只能期待用户能够抱着提高自学能力的心态自己去补充相关的知识. 一.简单文件系统操作 1.查看磁盘和目录的容量 使用 df 命令查看磁盘的容量 $ df 在实验楼的环境中

Linux基础之权限-你弄得明白吗?

使用编辑文件passwd的方式添加用户natasha用户ID为1000,组ID为555 在shadow文件中添加natasha用户的信息 在group文件中添加natasha的属组ID为555 为natasha创建/home/natasha用户的宿主目录,并将宿主目录必要文件复制到natasha下,切换natasha用户 修改natasha用户的家目录为/Natasha 首先将宿主目录natasha改为Natasha,并使用usermod --home 将宿主目录改为Natasha,进入nata

linux基础教程---内容操作

一.寻找文件里的指定内容 寻找文件里的指定内容,输出内容所在行的所有信息 grep    被搜索内容    文件路径名 >grep     var       passwd       //在 passwd 文件里把 var 字样所在行的内容都给输出 二. 管道 pipe 管道就是:前者的输出是后者的输入内容. grep var passwd | grep denny 利用管道,在passwd文件里,搜索一行内容中既有var. 也有dnny > ls ‐l | wc          //计算

linux基础--特殊权限及文件系统访问控制列表

特殊权限 SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动用户. SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动用户所属的基本组. Sticky:在一个公共目录,每个用户都可以创建文件,能删除自己的文件,但不能删除别人的文件 修改文件的特殊权限 chmod u+s FILE:给文件添加SUID权限 chmod u-s FILE:给文件删除SUID权限 chmod g+s FILE:给文件添加SGID权限 chmod g-s FILE:给文件删除SGI

Linux基础之权限管理

权限管理: ls -l rwxrwxrwx: 左三位:定义user(owner)的权限 中三位:定义group的权限: 右三位:定义other的权限 进程安全上下文: 进程对文件的访问权限应用模型: 进程的属主与文件的属主是否相同:如果相同,则应用属主权限: 否则,则检查进程的属主是否属于文件的属组:如果是,则应用属组权限: 否则,就只能应用other的权限: 权限: r:readable, 读 w:writable, 写 x:excutable,执行 文件: r:可获取文件的数据: w: 可修