linux-账号和权限管理

目录

一、用户账号与组账号

1.用户账户

2.组账户

二、添加用户账号-useradd

三、更改用户命令-passwd

四、修改用户账号的属性-usermod

五、删除用户账号-userdel

六、添加组账号-groupadd

七、添加删除组成员-gpasswd

八、删除组账号-groupdel

九、查询账号信息

十、设置文件和目录的权限-chmod

十一、设置文件和目录的归属-chown

十二、设置目录和文件的默认权限-umask 


一、用户账号与组账号

1.用户账户

用户账号:它存了用户账号的基本信息。包含了用户名、用户ID、、用户描述、家目录路径、登录Shell等信息
文件位置:存储在/etc/passwd 文件中
(每一行对应一个用户的账号记录)

管理员用户:是拥有系统最高管理权限的用户账号,登录后会显示#,root用户(管理员用户)可以执行系统上的任何操作,包括创建、删除和修改用户账户、安装软件、修改系统配置等。

普通用户:在系统中具有受限权限的用户账号,登录后显示$,通常只能访问其自己的文件和一些系统资源,不能执行一些关键的系统管理任务。

程序用户:在系统中专门用于运行服务和程序的用户账号,程序用户通常不会用于登录系统交互式地执行任务,而是用于执行特定的系统服务或程序。

2.组账户

组账号文件:

/etc/group:保存了组账户的基本信息,每一行对应一个组账户记录

/etc/gshadow:保存了组账户的密码信息,只有特权用户如root用户才能读取和修改这个文件。

基本组(私有组):是与用户账户直接关联的组,通常是在创建用户时指定的默认组。基本组信息通常存储在 /etc/passwd

附加组(公共组):是用户除了基本组以外,额外添加的指定组

二、添加用户账号-useradd

语法形式

useradd 【选项】 用户名

在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。 若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow 文件中。

useradd常用选项

-u:指定用户的UID(用户ID)。

sudo useradd -u 1001 username

建一个名为 username 的用户,并将其UID设置为 1001  👆


-g:指定用户的基本组名或GID(基本组ID)。

sudo useradd -g groupname username

创建一个名为 username 的用户,并将其添加到名为 groupname 的基本组中👆
 

-G:指定用户的附加组名或GID(附加组ID)。

sudo useradd -G groupname1,groupname2 username

创建一个名为 username 的用户,并将其添加到名为 groupname1 和 groupname2 的附加组中👆
 

-d:指定用户的家目录路径。

sudo useradd -d /home/username username

创建一个名为 username 的用户,并将其家目录路径设置为 /home/username👆
 

-s:指定用户的登录Shell。

sudo useradd -s /bin/bash username

创建一个名为 username 的用户,并将其登录Shell设置为 /bin/bash 👆
 

-M:不创建用户的家目录。通常与 -d 选项一起使用,用于指定用户的家目录路径,但不实际创建家目录。 

sudo useradd -M username

创建一个名为 username 的用户,但不会创建他的家目录 👆

三、更改用户命令-passwd

语法形式

passwd 【选项】 用户名

root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码
普通用户却只能执行单独的“passwd”命令修改自己的密码,也可以用下面这两条命令

echo "密码" | passwd --stdin 用户名
echo <用户名>:<密码> | chpasswd  

常见命令以及示范

1.清空用户密码:-d

passwd -d [用户名]

会清空指定用户的密码,使其成为空密码

2.锁定/禁用用户:-l

passwd -l [用户名]

会将指定用户的密码锁定,禁止用户使用密码登录系统

3.解锁用户-u

passwd -u [用户名]

会解锁之前被锁定的用户账号,允许用户使用密码登录系统

4.查看锁定状态:-S

passwd -S [用户名]

会显示指定用户账号的锁定状态,包括密码是否被锁定以及密码是否过期等信息

四、修改用户账号的属性-usermod

语法形式

usermod 【选项】 用户名

usermod的常用命令👇

1.修改用户的UID:-u

usermod -u    #修改用户的UID(用户ID)

2.修改用户的基本组:-g

usermod -g   #修改用户的基本组

3.修改用户的附加组:-G

usermod -G      #修改用户的附加组

4.修改用户的家目录路径:-d

usermod -d      #修改用户的家目录路径

5.修改用户的登录Shell :-s

usermod -s      #修改用户的登录Shell

6. 修改用户的账户失效时间:-e

usermod -e 2024-12-31 username

将用户名为 username 的用户账户的失效日期设置为 2024 年 12 月 31 日。用户在这个日期后将无法登录系统。(日期的格式为 YYYY-MM-DD)

7.更改用户账号的登录名称:-l

Usermod -l	#更改用户账号的登录名称

 8.锁定用户账户:-L

Usermod -L   	#锁定用户账户

 9.解锁用户账户:-U

Usermod -U	  #解锁用户账户

五、删除用户账号-userdel

语法形式👇 

userdel [选项] 用户名    #删除用户账户
userdel -r 用户名    #删除用户账户的同时删除用户的家目录和邮件邮箱

六、添加组账号-groupadd

1.语法形式

groupadd 【-g GID】 组账号名

普通用户的 GID 号:1000~60000

程序用户账号的 GID 号:默认范围为 1 ~ 999

gpasswd -a john developers

↑把用户 john 加入到 developers 组中。

七、添加删除组成员-gpasswd

gpasswd命令用于管理用户组的密码(组密码)和组成员,允许管理员修改组密码、添加或删除组成员等操作。

gpasswd 【选项】 组账号名                #设置组帐号密码(极少用)、添加/删除组成员
-a将指定的用户添加到指定的组
-d从指定的组中删除指定的用户。
-M指定一组用户作为组的成员。
gpasswd -a john developers

 👆把用户 john 加入到 developers 组中。

gpasswd -d john developers

 👆从 developers 组中删除用户 john

gpasswd -M john,jane,alice developers

👆将 johnjanealice 设置为 developers 组的成员。

八、删除组账号-groupdel

groupdel命令会从系统中彻底删除指定的组,同时也会删除与该组相关的用户组ID(GID)等信息

groupdel [选项] 组名

举个🌰👇

groupdel examplegroup

 删除名为 examplegroup 的用户组

九、查询账号信息

-groups、id、finger、w、who、users 

groups [用户名]    #显示当前用户所属的用户组
id [用户名]   #显示当前用户的 UID、GID 以及所属的其他用户组的信息
finger [用户名]        #显示指定用户的信息
w、who、users    #这些命令可以在终端中直接使用,用于查询用户账号相关信息

十、设置文件和目录的权限-chmod

查看文件和目录的权限和归属👇

权限项执行执行执行
字符表示rwxrwxrwx
数字表示421421421
权限分配文件所有者文件所属者其他用户

  语法形式👇

chmod [u|g|o|a] [+|-|=] [r|w|x] 文件或目录

[u|g|o|a]:表示用户类别,可以是单个字符 u(属主)、g(属组)、o(其他用户)或 a(所有用户)

[+|-|=]:表示操作,可以是 +(增加权限)、-(去除权限)或 =(设置权限)

[r|w|x]表示权限,可以是单个字符 r(读权限)、w(写权限)、x(执行权限)

文件或目录:表示要修改权限的文件或目录名称。

常用选项👇

-R:递归修改权限,包括目录下的所有文件和子目录

举🌰环节👇

chmod 644 example.txt

将文件 example.txt 的权限设置为所有者可读写,同组用户只读,其他用户只读

chmod -R 755 example_dir

example_dir 及其所有子目录和文件的权限设置为所有者可读写执行,同组用户可读执行,其他用户只读执行

chmod +x script.sh

文件 script.sh 的权限添加可执行权限给所有用户

十一、设置文件和目录的归属-chown

chown [-R] 属主 文件/目录
chown [-R] :属组 文件/目录
chown [-R] 属主:属组 文件/目录
chown [-R] 属主.属组 文件/目录

-R:递归修改指定目录下所有文件、子目录的归属

十二、设置目录和文件的默认权限-umask 

每个新创建的文件和目录都有一个默认的权限。umask 命令用于设置这个默认权限,它会从文件和目录的初始权限中减去掩码值,从而确定最终的默认权限 。

语法:

umask [新掩码]

 举🌰🌰

umask 022    #将当前用户的 umask 设置为 022

普通文件的默认最大权限是 666(rw-rw-rw-)
目录的默认最大权限是 777(rwxrwxrwx)
新建的文件或者目录的权限为默认最大权限减去umask

(举个🌰umask 设置为 022,则新创建的普通文件的权限将是 666 - 022 = 644,新创建的目录的权限将是 777 - 022 = 755。)

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值