Linux环境实践 账户管理和权限管理

账户管理和权限管理

1、账户管理相关概念

帐户本质上是系统上的用户身份。
系统以账户区分每个用户的文件、进程和任务,为每个用户提供特定的工作环境(如用户的工作目录、Shell版本、X-window环境的配置),让每个用户的工作都能独立完成 并且没有中断。
Linux 帐户包括
(1)user account
(2)group account

User
Linux 下有两种类型的用户帐户
	普通用户账号:系统上的任务是做普通的工作
	超级用户帐户(或管理员帐户):系统上的任务是管理普通用户和整个系统。
每个用户都被分配了一个唯一的用户 ID 号 (UID)
	超级用户:UID=0,GID=0
	普通用户:UID>=500
	系统用户(伪用户,未登录):0<UID<500

用户名和 UID 保存在 /etc/passwd 这个文件中

当用户登录时,他们被分配一个主目录和一个正在运行的程序(通常是 shell)

没有适当的权限,用户不能读取、写入或执行彼此的文件

Group

组是用户的集合。

每个组都分配有唯一的组 ID 号

(GID) 组和 GID 保存在 /etc/group 文件中

每个用户都有自己的私人群组

每个用户都可以添加到另一个组以获得额外的访问权限

组中的所有用户都可以共享属于该组的文件

Standard groups

标准组可以容纳多个用户

如果使用标准组,则在创建新用户时应指定他所属的组

Private groups

仅限私人组中的用户

创建新用户时,如果不指定他所属的组,rhel/centos会创建一个与用户同名的私有组,并将用户分配到私有组

组和用户的关系
1、组是用户的集合。
2、一个标准组可以容纳多个用户。
3、同一用户可以属于多个组,可以是私有组,也可以是标准组。
当一个用户属于多个组时,组被分为:
Primary group(初始组):用户登录系统时的组。
Additional group(附加组):可以切换的其他组。
账户验证信息文件
1、密码文件 /etc/passwd
文件权限 (-rw-r--r--)
2、影子密码文件 /etc/shadow
文件权限(-r--------)
3、组帐户文件 /etc/group
文件权限(-rw-r--r-- )
4、组密码文件 /etc/gshadow
文件权限(-r--------)
验证账户文件的一致性
1、pwck
验证用户帐户文件和身份验证信息的完整性。
此命令检测文件“/etc/passwd”和“/etc/shadow”每一行中字段的正确格式和值。
2、grpck
验证组帐户文件和身份验证信息的完整性。
此命令检测文件“/etc/group”和“/etc/gshadow”每一行中字段的正确格式和值。
2、用户和组管理工具
1、用户管理 User administration

(1)useradd

用于Linux中创建的新的系统用户

 useradd [<option>] <user name>
1. -d directory #指定用户登入时的起始目录
2. -e expire #指定帐号的有效期限
3. -g group #指定用户所属的群组
4. -G group #指定用户所属的附加群组
5. -M #不要自动建立用户的登入目录
6. -s shell #指定用户登入后所使用的shell

显示useradd命令参数的默认值

 useradd -D

修改默认值

 useradd -D [-g group] [-b base] [-s shell]  [-e expire ] 

(2) passwd

用于设置用户的认证信息,包括用户密码、密码过期时间等

 passwd [<User account name>]

(3) usermod

用于修改用户的基本信息

usermod 命令不允许你改变正在线上的使用者帐号名称。当 usermod 命令用来改变user id,必须确认这名user没在电脑上执行任何程序

1. -c<备注>:修改用户帐号的备注文字;
2. -d<登入目录>:修改用户登入时的目录,只是修改/etc/passwd中用户的家目录配置信息,不会自动创建
新的家目录,通常和-m一起使用;
3. -m<移动用户家目录>:移动用户家目录到新的位置,不能单独使用,一般与-d一起使用。
4. -e<有效期限>:修改帐号的有效期限;
5. -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
6. -g<群组>:修改用户所属的群组;
7. -G<群组>:修改用户所属的附加群组;
# usermod -G  staff  user1
8. -l<帐号名称>:修改用户帐号名称;
9. -L:锁定用户密码,使密码无效;
10. -s<shell>:修改用户登入后所使用的shell;
11. -u<uid>:修改用户ID;
12. -U:解除密码锁定。

例子:

1、添加newuser2到组staff
 usermod -G 员工 newuser2
2、修改newuser用户名newuser1
 usermod -l newuser1 newuser
3、锁定账号newuser1
 usermod -L newuser1
4、解除对newuser1的锁定
 usermod -U newuser1

(4) userdel

用于删除给定的用户,以及与用户相关的文件

若不加选项,则仅删除用户帐号,而不删除相关文件

 userdel [<-r>] <user name>
删除用户的同时,删除与用户相关的所有文件。

(5) groupadd

用于创建一个新的工作组,新工作组的信息将被添加到系统文件中

 groupadd [< parameters >] <the name of the account number>
1. -g:指定新建工作组的id;
2. -r:创建系统工作组,系统工作组的组ID小于500;

例子:

 groupadd mygroup 
 groupadd -r sysgroup
 groupadd -g 888 group2

(6) groupmod

更改群组识别码或名称

# groupmod [< parameters >] < group account name >
1. -g<群组识别码>:设置欲使用的群组识别码;
2. -n<新群组名称>:设置欲使用的群组名称。

例子:

 groupmod -g 503 mygroup 
 groupmod –n newgroup mygroup 

(7) groupdel

令 用于删除指定的工作组,本命令要修改的系统文件包括/ect/group 和/ect/gshadow

 groupdel < group account name >

(8) gpasswd

是Linux下工作组文件 /etc/group 和 /etc/gshadow 管理工具

1. -a:添加用户到组;
 gpasswd -a user1 staff 
2. -d:从组删除用户;
gpasswd -d < user account name > < group account name > 
 gpasswd -d user1 staff
3、批量用户管理

(1) newusers

用于批处理的方式一次创建多个命令

newusers后面直接跟一个文件,文件格式和 /etc/passwd 的格式相同

 newusers <filename>

(2) chpasswd

是批量更新用户口令的工具,是把一个文件内容重新定向添加到 /etc/shadow 中

 chpasswd  < <filename>

(3) pwgen

创建随机密码

默认密码长度为 8
默认生成的密码数量为 8*20

 pwgen [选项] [密码长度] [密码数量]
1. -c:至少包含一个大写字母
2. -n:至少包含一位数字
3. -y:至少包含一个除字母和数字以外的特殊字符
4. -s:生成一个完全随机的安全密码
5. -1:每行一个密码
3、密码维护和密码老化

密码维护——禁用、恢复和删除用户密码

1.禁用用户帐户密码
 passwd -l <用户帐户名>
2.查看用户帐户密码状态
 passwd -S <用户账户名>
3.恢复用户帐户密码
 passwd -u <用户账户名>
4.清除用户帐户密码
 passwd -d <用户帐户名>

密码老化

密码老化是系统管理员用来防止组织内出现错误密码的一种技术。
防止密码被攻击的方法是经常更改密码。
强制用户在一段时间后更改密码的机制称为密码老化。
默认情况下,密码不会过期
强制密码失效是强大安全策略的一部分

为新添加的用户设置密码时效

修改/etc/login.defs相关配置参数

1. PASS_MAX_DAYS 99999
2. PASS_MIN_DAYS 0
3. PASS_MIN_LEN 5
4. PASS_WARN_AGE 7

change 命令

用来修改帐号和密码的有效期限

1. -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
2. -M:密码保持有效的最大天数。
3. -w:用户密码到期前,提前收到警告信息的天数。
4. -E:帐号到期的日期。过了这天,此帐号将不可用。
5. -d:上一次更改的日期。
6. -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
7. -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
4、文件和目录的基本权限

Overview

Linux 是一个多用户操作系统,允许多个用户同时登录并在系统上工作。

保证安全的措施:

1、通过 UID/GID 确定每个用户登录系统后做了什么
2、uid/gid 区分不同用户创建的文件或目录
每个文件或目录都属于一个 UID 和一个 GID
3、每个进程使用一个 UID 和一个或多个 GID 来运行
通常由运行进程的用户决定
4、超级用户拥有所有权利,无特殊说明
5、普通用户只能操作主目录及其子目录中的所有文件,并且可以不受限制地访问系统中的其他目录/文件

三种基本权限:

r -read 可读 可以列出目录中的文件列表

w -write 可写 您可以在此目录中创建或删除文件或子目录

x -excute 可执行 您可以使用 CD 命令访问该目录

文件和目录的用户包括:所有者,同组,其他
权限分配
1.所有者权限:用于限制文件或目录的创建者
2.组权限:用于限制文件或目录所属组的成员
3.其他用户的权限:用于限制可以访问文件或目录的其他人,这些人既不是所有者也不是所属组
权限优先级
1.如果 UID 匹配,则应用用户权限
2.否则,如果 GID 匹配,则应用组权限
3.如果没有匹配,则应用其他用户(其他)权限

查看文件/目录权限

通过将三种基本权限分配给三种类型的用户,生成一个文件或目录的 9 个基本权限位

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z5Bo1iXF-1641631272133)(C:\Users\刘衍初\AppData\Roaming\Typora\typora-user-images\image-20220108152751820.png)]

在显示的结果中,第一个字段中的第 2 到第 10 个字符用于表示权限。

这9个字符中的每一个都是3个一组,由3组权限控制组成

第一组控制文件所有者的访问权限

第二组访问权限控制所有者的用户组的其他成员的

第三组控制系统其他用户的访问

String8 valueExplain
-rw-------600Only the owner has read and write permissions.
-rw-r–r--644Only the owner has read and write permission, and only the same group and others have Read permission.
-rwx------700Only the owner has read, write, and execute permissions.
-rwxr-xr-x755The owner has permission to read, write, and execute; the same group of people and others have only read and execute permissions.
-rwx–x--x711The owner has permission to read, write, and execute;
-rw-rw-rw-666Everyone can read and write files.
-rwxrwxrwx777Everyone can read, write, and execute.
drwx------700Only the owner can read and write in the directory.
drwxr-xr-x755Everyone can read the catalog, but the content can only be changed by the owner.

每个用户都有自己的目录(主目录),通常放在/home目录下,这些独占目录的默认权限通常是

drwx------

权限相关命令

1. chmod 更改文件或目录的权限
2. chown 更改文件或目录的所有者
3. chgrp 更改文件或目录所属的组
4. umask 设置文件的默认构建掩码

1、chmod

1. #文字设定法
使用字母和运算符表达式来修改或设置文件的访问权限
chmod [-R] <文本模式> <文件或目录名>
2. #数字设定法
使用八进制数设置对文件的访问
chmod [-R] <八怪模式> <文件或目录名>

u 符号代表当前用户。
g 符号代表和当前用户在同一个组的用户,以下简称组用户。
o 符号代表其他用户。
a 符号代表所有用户。

+ 符号代表添加目标用户相应的权限。
- 符号代表删除目标用户相应的权限。
= 符号代表添加目标用户相应的权限,删除未提到的权限。
Operation objectOperation methodAccess rights
uBelong to the Lord(user)+Add acertain authorityrRead
gThe same group(group)-delete some permissionwWrite
oOther(others)=Give a permission directly and cancel all other permissionsxCarry out
aAll(all)-No permissions

例子:

chmod u+rw myfile 
chmod a+rx,u+w myfile
chmod u+rwx,g+rx,o+rx myfile 
chmod a+rwx ,g-w,o-w myfile
chmod a=rwx myfile 
chmod go=rx myfile 
chmod u-wx,go-x myfile 
chmod a+x myfile 

数字设定法

chmod n1n2n3 <File or directory>

分别代表用户(n1)、同组用户(n2)和其他用户(n3)在三种数字模式下的访问权限。

每个数字模式(n1|n2|n3)与不同权限对应的数字相加,得到一个八进制数,代表访问权限。

r 符号代表读权限以及八进制数 4 
w 符号代表写权限以及八进制数 2 
x 符号代表执行权限以及八进制数 1 

例子:

1、chmod 644 myname.txt
The permissions properties for the set file myname.txt are:
-rw-r--r-- 
2、chmod 750 myname.txt
The permissions properties for the set file myname.txt are:
-rwxr-x--- 
3、chmod 700 mydata/
The permissions attribute for the set directory mydata are:
drwx------ 

2、chown chgrp

chown

改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指 定文件的所有者或者改变文件所属的组

chgrp

用来改变文件或目录所属的用户组

只有 root 可以更改文件的所有者

只有 root 或所有者可以更改文件所属的组

1、chown 命令更改所有者/组
chown [-R] <用户名[<.|:>组名]> <文件|目录>
2、chgrp 用于更改组
chgrp [-R] <组名> <文件|目录>

例子:

chown  soft       myfile
chgrp softgrp    myfile
chown .softgrp  myfile
chown -R soft    mydir
chgrp  softgrp    mydir
chown -R :softgrp  mydir
chown -R soft.softgrp  mydir

3、umask

显示或设置创建文件的权限掩码

umask [-p] [-S] [mode]
umask u1u2u3
U1 表示不允许所有者的权限
U2 代表不允许同一组人的权限
U3 代表不允许他人的特权
一般用户的umask是 002。
根用户 umask 为 022
umask valuesAccess rights for new directoriesNew File access
022**777-022= **755666-022= 644
027777-027= 750666-027= 640
002777-002= 775666-002= 664
006777-006= 771666-006= 660
007777-007= 770666-007= 660

设置umask的值:

1、使用 Umask 命令临时设置

2、在shell环境配置文件中设置

​ RHEL/CentOS 默认设置在 /etc/bashrc

用户可以在 ~/. .bashrc

3、在/etc/fstab 文件系统挂载参数中指定

5、三种特殊权限

可执行文件的特殊权限

suid:以命令所属用户的权限执行,而不是命令执行者的权限执行。

sgid:以命令所属组的权限执行

目录的特殊权限

sgid:在具有sgid权限的目录下创建的文件将具有该目录的组权限。

sticky-bit:具有sticky位的目录下的文件只能被该文件的用户和根用户删除,无论该目录的“写”权限如何设置

chmod  n0n1n2n3  File or directory name 

使用单独的数字模式 (n0) 将多个不同的权限添加到表示特殊权限的八进制数。

permissionsCorresponding numbers
SUID4
SGID2
Sticky-bit1
-0

例子:

Add UID permissions for program ~/bin/myapp
# chmod u+s ~/bin/myapp
# chmod 4755 ~/bin/myapp
Add SGID permissions for directory/home/groupspace
# chmod g+s /home/groupspace
# chmod 2755 /home/groupspace
Add sticky-bit permissions for directory/home/share
# chmod o+t /home/share
# chmod 1755 /home/share

6、文件访问控制列表

FACL是Access control List(文件访问控制列表)的缩写,简称ACL。
ACL 为用户和管理员提供了更大的灵活性来控制读写文件和权限的能力。
1、ACL 是标准 UNIX 文件属性(r、W)的附加扩展。
2、ACL 可以将 RWX 权限分配给任何指定的用户/组。
3、ACL 允许用户共享文件以避免使用有风险的 777 权限。

setfacl

setfacl命令 是用来在命令行里设置ACL(访问控制列表)

格式:

1.[d[efault]:] [u[ser]:]uid [:perms] 指定用户的权限,文件所有者的权限(如果uid没有指
定)。
2. [d[efault]:] g[roup]:gid [:perms] 指定群组的权限,文件所有群组的权限(如果gid未指定)
3. [d[efault]:] m[ask][:] [:perms] 有效权限掩码
4. [d[efault]:] o[ther] [:perms] 其他的权限
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值