Linux Command Line and....ch7(理解Linux文件权限)

本章内容:

  • 理解Linux安全性
  • 解读文件权限
  • 使用Linux组

7.1 Linux的安全性

Linux安全系统的核心是用户账户。先介绍管理用户账户需要的文件和工具。

7.1.1 /etc/password 文件

$ cat /etc/passwd
这里写图片描述

可以看到root用户分配到的UID是0.
Linux会为各种各样的功能创建不同的用户账户,这些账户不是真正的用户。 这些账户叫做“系统账户”,是系统上运行的各种服务进程访问资源用的特殊账户。
这里写图片描述

===
7.1.2 /etc/shadow 文件

只有root用户才能访问,对系统密码管理提供了更多的控制。

===
7.1.3 添加新用户

useradd 选项 参数

查看配置用户的默认参数:
$ useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

这里写图片描述

新建用户时的命令参数

代码:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 指定新账号的登录名。

# useradd -s /bin/sh -g group –G adm,root gem

此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。(创建用户需要root权限)

===
7.1.4 删除用户

userdel linuxso 注:删除用户linuxso,但不删除其家目录及文件;
userdel -r linuxso 注:删除用户linuxso,其家目录及文件一并删除;

===
7.1.5 修改用户

usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号]

-c 更改 /etc/passwd 第5栏用户信息说明的部分,后面接描述信息,可以使用chfn命令替代
-d 更改 /etc/passwd 第6栏用户的home目录部分,如果再加上 -m 参数(只与-d配合)。则会将现有home目录的地址重命名为新的home目录地址,如原来没有指定home目录地址,则为账号新建一个指定的home目录地址。
-e 更改 /etc/shadow 的第8栏账号的失效日期,后面接日期参数格式为 MM/DD/YY 或 YYYY-MM-DD
-f 更改 /etc/shadow 的第7栏账号过期宽限时间部分,当后面接的值为 0 时,账号立即失效,为 -1 时关闭此功能默认值为 -1
-g 后面接 group name 必须是现有 group 组中的一个,改变用户的初始化用户组 id 对应 /etc/passwd 的第4栏内容
-G 后面接 group name 必须是现有 group 组中存在的组名,改变用户能够支持的用户组,修改的是 /etc/group
-l 后面接账号名称,即更改用户名。对应的是 /etc/passwd 的第一栏
-s 后面接shell的实际文件,即 /bin/bash ,/bin/csh之类,可以使用 chsh 命令替代
-u 更改用户的UID,对应的是 /etc/passwd 的和3栏数据,此 UID 不能与目前系统中已经存在的UID相同
-L 暂将用户的密码冻结,禁止其登录,即更改 /etc/shadow 的密码栏,在其前面加上 !
-U 暂将用户的密码解冻,即去掉其 /etc/shadow 密码栏前面的 !


7.2 使用Linux组

组权限允许多个用户对系统中的对象共享一组共用的权限。
每个组有唯一的GID。

7.2.1 /etc/group文件

存储了每个组的信息

===
7.2.2 创建新组

# groupadd shared
# tail /etc/group (显示文件的末尾部分)
colord:x:123:
pulse:x:124:
pulse-access:x:125:
rtkit:x:126:
saned:x:127:
lyk:x:1000:
sambashare:x:128:lyk
guest-uzhjy5:x:999:
wireshark:x:129:
shared:x:1001:

创建新组时,默认没有任何用户分配到该组,可以使用usermod命令

===
7.2.3 修改组

groupmod
groupmod 用于修改系统已存在的组账号。格式如下:groupmod [options] GROUP
其中:
GROUP:为要修改的组账户名
常用选项:
-g GID:重新指派 GID
-n NEW_GROUP:更改组名为 NEW_GROUP
举例: 将 shared 组更名为 leaders
# groupmod -n leaders shared
# grep leader /etc/group
leaders:x:504:
将 leaders 组的 GID 改为 3000
# groupmod -g 3000 leaders
# grep leader /etc/group
leaders:x:3000:

※grep命令 print lines matching a pattern


7.3 理解文件权限

在linux中,所有东西都被当成文件。
文件权限前的一个字母用来表示文件类型:
-:一般文件
d:目录文件
b:块设备文件(如,硬盘)
c:字符设备文件(如,键盘、鼠标)
l:链接文件(相当于Window中的快捷方式)
p:人工管道
n:网络设备

$ ls -l
这里写图片描述
对于每一类用户,权限系统又分别提供他们三种权限
读(r):用户是否有权力读文件的内容
写(w):用户是否有权利改变文件的内容(不含删除)
执行(x):用户是否有权利执行文件
这里写图片描述

===
7.3.2 默认文件权限

# touch newfile (新建文件)
# ls -l newfile
-rw-r–r– 1 root root 0 6月 21 13:07 newfile

这里有一个默认的文件权限,umask命令可以显示和设置这个默认权限。

umask是个掩码,会屏蔽掉不享授予该安全级别的权限。默认的umask值是0022(第一位是粘着位),所以上述的文件权限是644
具体的数字对应:
r w x
4 2 1

对于文件来说,全权限的值是666;目录全权限的值是777


7.4 改变安全性设置

7.4.1 改变权限

chmod [options] [mode] [file]

-c或–changes  效果类似”-v”参数,但仅回报更改的部分。
-f或–quiet或–silent  不显示错误信息。
-R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose  显示指令执行过程。

===
7.4.2 改变所属关系

改变属主:
chown [options] [owner] [file]

改变所属用户组:
chgrp [group] [file]


7.5 共享文件

以往想要共享文件,要么改变文件其他用户所在组的安全权限,要么就给文件分配一个包含其他用户的新默认属组。

现在还有一种方法。
这里写图片描述

以SUID为例:
只对二进制程序有效
执行者对于程序需要有x权限
在程序运行过程中,执行者拥有程序拥有者的权限
例如:
普通用户执行passwd命令。
首先查看passwd命令的绝对路径:
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 5月 17 07:37 /usr/bin/passwd

因为passwd命令具有SUID权限,所以普通用户执行这个命令时,当系统生成对应的进程后,这个进程就拥有了/usr/bin/passwd文件拥有者root的权限。

SGID位对于文件共享非常重要,启用SGID位后,可以强制在一个共享目录下创建的新文件都属于该目录的属组。

设置和查看SUID/SGID/SBIT权限的方法:
SUID是4 SGID是2 SBIT是1
chmod 4755 filename
第一个4代表的就是这三个特殊命令,后面的755是普通权限。上面的命令把filename这个文件加入了SUID权限。
查看特殊权限的方法就是普通的ls命令:
SUID会在所属用户权限本应是x的地方显示s
SGID会在所属用户组权限本应是x的地方显示s
SBIT在其它用户权限本应是x的地方显示t


※对于一个目录来说(d开头)如果others的权限里有r但没有x,则不能进入此目录,目录的x意味着能否执行cd指令

要开放目录给任何人浏览,至少需要r和x权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值