第四章、账号和权限管理

第四章、账号和权限管理

一、管理用户账号和组账号

1、用户账号和组账号

1.1用户账号

1.1.1超级用户——root,拥有最高权限且是唯一的

1.1.2普通用户——个人用户,登录时可以看到用户名,由root用户或其他管理员用户创建,拥有权限会受到限制,一般在用户自己宿主目录中拥有完整权限

1.1.3程序用户——管理程序,安装Linux操作系统及部分应用程序会添加一些特定的低权限用户账号,这些账号一般不会登录到系统,仅仅用于维持系统或某个程序正常运行(例如bin、daemon、ftp、mail)

1.2su命令——切换用户

只是切换了身份,但是shell环境、环境变量、工作目录等不变

[root@xiaowang ~]# useradd WL                          ###创建用户
[root@xiaowang ~]# su                                  ###刷新
[root@xiaowang ~]# su WL                               ###切换用户
[WL@xiaowang root]$ id WL                              ###查看用户信息
uid=1003(WL) gid=1003(WL) groups=1003(WL)
[WL@xiaowang root]$ su root                            ###切回root用户
Password:Abc123                                        ###需要输入密码
[root@xiaowang ~]#
[root@xiaowang ~]# echo $PATH                          ###查看当前系统环境变量路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin   ###表示系统会在这些路径中查找可执行文件

1.3组账号

1.3.1基本组(私有组)——基本组账号只有一个,一般为创建用户时指定的组,在/etc/passwd文件中第四字段记录的为该用户的基本组GID号

1.3.2附加组(公共组)——用户除了基本组以外额外添加指定的组,可有可无,可以有多个

1.3.3UID和GID

UID(User IDentity,用户标识号)——root超级用户(0)、程序用户(1~999)普通用户(1000+)
GID(Group IDentify,组标识号)——root超级用户(0)、程序用户(1~999)普通用户(1000+)

id +用户名                                              ###查看用户UID、GID、组
[root@xiaowang ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@xiaowang ~]# id wl
uid=1000(wl) gid=1000(wl) groups=1000(wl)
[root@xiaowang ~]# id WL
uid=1003(WL) gid=1003(WL) groups=1003(WL)

二、管理目录和文件的属性

1、用户账号管理文件/etc/passwd/

[root@xiaowang ~]# cat /etc/passwd | grep wl         ###查看用户账号信息
wl:x:1000:1000::/home/wl:/bin/bash
或
[root@xiaowang ~]# tail -3 /etc/passwd               ###查看用户账号信息
wl:x:1000:1000:wl:/home/wl:/bin/bash
test:x:1002:1001:test:/opt/test:/bin/bash
WL:x:1003:1003:WL:/home/WL:/bin/bash

字段一:用户账号的名称
字段二:用户密码占位符
字段三:用户账号的UID号
字段四:所属基本组账号的GID号
字段五:用户全名
字段六:宿主目录
字段七:登录shell信息(/bin/bash——可登录系统,/sbin/nologin和/bin/false——禁止用户登录系统)

​ shell有哪些环境:

​ ①/bin/bash——允许登录

​ ②/sbin/nologin——禁止登录

​ ③/bin/sh

​ ④/sbin/sync

2、用户密码管理文件/etc/shadow/

[root@xiaowang ~]# tail -3 /etc/shadow              ###查看用户密码账号有效期登信息
wl:$6$TCvFgxOB$O9xUg5NZg4K7XiCliS54R7AcV6CWyJs7mi.J8WcFtP0aqLHou3RreTQutKV0NZ3hf4XUJRDpIWapPDwM6ooqW1:19937:0:99999:7:::
test:$6$6RPk7yQv$XElu.zZbboyo4UIri7GMAkoqBvxO1Kdc9GcfT91xBXxfRINMBT1.T2bBkUW7bIB3yVRvZOtSddEOloVWYag1q1:19937:0:99999:7:::
WL:!!:19937:0:99999:7:::

字段一:用户账号的名称
字段二:使用(MD5:加密工具)加密的密码子串信息,当为“*”或“!!”时表示此用户不能登录到系统,若该字段内容为空,则该用户无需密码即可登录系统
字段三:上次修改密码的时间,表示从1970年1月1日算起到最近一次修改密码所隔的天数
字段四:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码,默认值为0表示不进行限制
字段五:密码的最长有效天数,自本次修改密码后,经过该天数后必须再次修改密码,默认值为99999表示不进行限制
字段六:提前多少天告警用户密码将过期,默认值为7
字段七:在密码过期之后多少天禁用此用户
字段八:账号失效时间,默认值为空,表示账号永久可用
字段九:保留字段(未使用)

3、创建用户useradd +用户名

若未指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件

3.1主要的用户初始配置文件:

①~/.bash_profile
②~/.bashrc
③~/.bash_logout

若未明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息保存到/etc/group/和/etc/gshsdow/文件中

3.2常用选项:

选项说明
useradd -u指定用户的UID号,要求该UID号未被其他用户使用
useradd -d指定用户的宿主目录位置(当与-M一起使用时不生效)
useradd -e指定用户的账户失效时间,可使用YYYY-MMM-DD的日期格式)
useradd -g指定用户的基本组名(或使用GID号)对应的组名必须已存在
useradd --G指定用户的附加组名(或使用GID号)对应的组名必须已存在
useradd -s指定用户的登录shell环境(例如/bin/bash为可登录系统,/sbin/nologin和/bin/false——禁止用户登录系统)

3.3示例:

[root@xiaowang ~]# id xiaolei                       ###查看用户是否存在
id: xiaolei: no such user                           ###查询结果该用户不存在
[root@xiaowang ~]# useradd xiaolei -u 1004 -d /opt/xiaolei -g 1004 -s /bin/bash ###创建用户
useradd: group '1004' does not exist                ###报错1004该组名不存在    
[root@xiaowang ~]# groupadd xiaolie                 ###先创建组名——groupadd +组名
[root@xiaowang ~]# useradd xiaolei -u 1004 -d /opt/xiaolei -g 1004 -s /bin/bash ###创建用户
[root@xiaowang ~]# tail -1 /etc/passwd              ###查看用户信息
xiaolei:x:1004:1004:xiaolei:/opt/xiaolei:/bin/bash  ###创建成功

4、判断用户是否存在——id+用户名

4.1示例:

[root@xiaowang ~]# id Wl                            ###查看用户是否存在
id: Wl: no such user                                ###查询结果该用户不存在

5、用户账号设置密码——passwd +选项 +用户名(仅root用户可以操作)

root用户可以指定用户名作为参数,对指定账号的密码进行管理

普通用户只能执行单独的“passwd”命令修改自己的密码

5.1常用选项:

选项说明
passwd -d清空指定用户的密码,仅使用用户名即可登录系统
passwd -l锁定用户账户(图形化界面可以登录,文字界面无法登录)
passwd -S查看用户账户的状态(是否被锁定)
passwd -u解锁用户账户

5.2示例:

[root@xiaowang ~]# passwd xiaolei      ###设置密码
Changing password for user xiaolei.                   
New password:Abc123                    ###输入密码
passwd: all authentication tokens updated successfully.   ###设置成功
[root@xiaowang ~]# su xiaolei          ###root用户切普通用户可以直接切换
[xiaolei@xiaowang root]$ su wl         ###普通用户之间切换需要输入密码
Password:Abc132
[wl@xiaowang root]$ su xiaolei         ###普通用户之间切换需要输入密码
Password:Abc123
[xiaolei@xiaowang root]$ su root       ##普通用户切root用户需要输入密码
Password:Abc123
[root@xiaowang ~]#
[root@xiaowang ~]# passwd -d xiaolei   ###passwd -d +用户名
Removing password for user xiaolei.    ###删除xiaolei用户的密码
passwd: Success                        ###成功

5.3 root用户下使用echo +密码 | passwd --stdin +用户名,为指定用户设置密码

5.4示例:

[root@xiaowang ~]# echo Abc123 | passwd --stdin xiaolei
Changing password for user xiaolei.
passwd: all authentication tokens updated successfully.
备注:--stdin表示免交互,直接设置密码,不需要再次确认
--stdin:标准输入
--stout:标准输出

6、修改用户账号属性——usermod +选项 +用户名(仅root用户可以操作)

6.1常用选项:

选项说明
usermod -u修改用户的UID号
usermod -d修改用户宿主目录位置
usermod -e修改用户的账户失效时间,可使用YYYY-MMM-DD的日期格式
usermod -g修改用户的基本组名(或使用UID号)
usermod -G修改用户的附加组名(或使用GID号)
usermod -s指定用户的登录shell
usermod -L锁定用户账户
usermod -U解锁用户账户

6.2示例:

[root@xiaowang ~]# cat /etc/passwd | grep xiaolei      ###查看xiaolei的账号信息
xiaolei:x:1004:1004::/opt/xiaolei:/bin/bash            ###UID号为1004
[root@xiaowang ~]# usermod -u 1005 xiaolei             ###修改xiaolei的UID号为1005
usermod: user xiaolei is currently used by process 1983   ###表示修改的当前用户xiaolei正在被系统中的一个进程(进程ID为1983)使用,在修改用户信息时,需要确保该用户没有登录或没有正在运行的进程
[xiaolei@xiaowang root]$ exit                          ###使用Ctrl+D命令,表示退出当前xiaolei用户的回话并回到root用户的会话
[root@xiaowang ~]# usermod -u 1005 xiaolei             ###修改xiaolei的UID号为1005
[root@xiaowang ~]# cat /etc/passwd | grep xiaolei      ###查看xiaolei的账号信息
xiaolei:x:1005:1004::/opt/xiaolei:/bin/bash            ###查看xiaolei的账号信息,UID号由1004变成1005,修改成功
[root@xiaowang ~]# usermod -L xiaolei                 ###锁定用户账户
[root@xiaowang ~]# passwd -S xiaolei                  ###查看用户状态
xiaolei LK 2024-08-04 0 99999 7 -1 (Password locked.) ###用户被锁定
[root@xiaowang ~]# passwd -u xiaolei                  ###解锁用户账户
Unlocking password for user xiaolei.
passwd: Success                                       ###解锁成功

7、删除用户账号——userdel

7.1基本格式:

userdel 【-r】 +用户名

添加【-r】选项时可以将该用户的宿主目录一并删除

7.2示例:

[root@xiaowang ~]# userdel xiaolei                    ###删除用户账号
userdel: user xiaolei is currently used by process 2194   ###表示修改的当前用户xiaolei正在被系统中的一个进程(进程ID为2194)使用,在修改用户信息时,需要确保该用户没有登录或没有正在运行的进程         
[xiaolei@xiaowang root]$ exit                         ###使用Ctrl+D命令,表示退出当前xiaolei用户的回话并回到root用户的会话
[root@xiaowang ~]# userdel xiaolei                    ###删除用户账号
[root@xiaowang ~]# id xiaolei                         ###查看用户是否存在
id: xiaolei: no such user                             ###查询结果该用户不存在
[root@xiaowang ~]# ls /opt/                           ###查看宿主目录已被删除
1.txt                 test    

7.3 cat /etc/profile

在这里插入图片描述
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

8、查询用户属于哪一个组——grep +“用户名” /etc/group

8.1示例:

[root@xiaowang ~]# grep "postfix" /etc/group
mail:x:12:postfix
[root@xiaowang ~]# grep "wl" /etc/group
wl:x:1000:

字段一:组账号的名称
字段二:占位符x
字段三:组账号的GID号
字段四:组账号包含的用户成员(一般不包括基本组对应的用户账号),多个成员之间用“,”分隔

/etc/group/——保存组账号文件
/etc/gshadow——保存组密码文件

9、添加组账号——groupadd

9.1示例:

[root@xiaowang ~]# groupadd -g 1005 wang          ###创建组组账号名为wang,GID号为1005的组账号
[root@xiaowang ~]# tail -1 /etc/group             ###查看组账号文件
wang:x:1005:

10、删除组账号——groupdel +组账号名

10.1示例:

[root@xiaowang ~]# groupdel wang                 ###删除组账号wang
[root@xiaowang ~]# grep "wang" /etc/group        ###查看组账号文件中没有组账号wang

11、添加删除组成员——gpasswd +选项+组账号名

11.1常用选项:

选项说明
gpasswd -a向组内添加一个用户
gpasswd -d从组内删除一个用户
gpasswd -M定义组成员列表,以“,”逗号分隔

12、查询用户账号详细信息——finger

先安装finger软件包——yum install -y finger

12.1基本格式:

finger +用户名

12.2示例:

[root@xiaowang ~]# finger wl
Login: wl                               Name:
Directory: /home/wl                     Shell: /bin/bash
Last login Sun Aug  4 08:42 (CST) on pts/0
No mail.
No Plan.

Login: WL                               Name:
Directory: /home/WL                     Shell: /bin/bash
Last login Fri Aug  2 16:52 (CST) on pts/1
No mail.
No Plan.

13、查询已登录到主机的用户信息

w、who、users

13.1示例:

[root@xiaowang ~]# w
 01:23:16 up  1:40,  2 users,  load average: 0.00, 0.01, 0.04
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      23:43    1:39m  0.01s  0.01s -bash
root     pts/0    20.0.0.1         23:43    4.00s  0.16s  0.01s w

14、设置目录和文件权限——chmod

14.1基本格式:

chmod +[ugoa…] [±=] [rwx]

"ugoa"表示该权限设置所针对的用户类别

u——代表文件属主
g——代表文件属组内的用户
o——代表其他任何用户
a——代表所有用户
+、-、=——表示设置权限的操作动作,+ 代表增加相应权限,- 代表减少相应权限,= 代表仅设置对应的权限
r、w、x是权限的字符组合形式,也可以拆分使用,如r、rx等

14.2示例:

chmod u+x 1.txt:将文件的用户(owner)权限设置为可执行

[root@xiaowang ~]# cd AA
[root@xiaowang AA]# ls
1.txt
[root@xiaowang AA]# ll 1.txt
-rwxr----x. 1 root root 115 Aug  5 08:55 1.txt
[root@xiaowang AA]# chmod g+w 1.txt
[root@xiaowang AA]# ll 1.txt
-rwxrw---x. 1 root root 115 Aug  5 08:55 1.txt
[root@xiaowang AA]# chmod o+r 1.txt
[root@xiaowang AA]# ll 1.txt
-rwxrw-r-x. 1 root root 115 Aug  5 08:55 1.txt
[root@xiaowang AA]#

14.3 chmod -R

递归修改指定目录下所有子目录及文件的权限

chmod -R 777 +文件或目录

15、设置文件和目录的归属——chown

15.1 基本格式:

chown+ [选项]+ 用户名+[:组名] +文件或目录

chown 属主 :文件或目录

chown属主 :属组 文件或目录

chgrp 属组:文件或目录

15.2常用选项:

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

16、设置目录和文件的默认权限——umask

指定目前用户在新建文件夹或目录时的权限默认值

新建的文件夹或目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的默认最大权限为7)

文件的权限的奇数会往前加1,目录不影响

17、补充——修改主机名

hostnamectl set-hostname +名字——永久修改
su/bash——刷新
od -R

递归修改指定目录下所有子目录及文件的权限

chmod -R 777 +文件或目录

15、设置文件和目录的归属——chown

15.1 基本格式:

chown+ [选项]+ 用户名+[:组名] +文件或目录

chown 属主 :文件或目录

chown属主 :属组 文件或目录

chgrp 属组:文件或目录

15.2常用选项:

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

16、设置目录和文件的默认权限——umask

指定目前用户在新建文件夹或目录时的权限默认值

新建的文件夹或目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的默认最大权限为7)

文件的权限的奇数会往前加1,目录不影响

17、补充——修改主机名

hostnamectl set-hostname +名字——永久修改
su/bash——刷新

### 解决PyCharm无法加载Conda虚拟环境的方法 #### 配置设置 为了使 PyCharm 能够成功识别并使用 Conda 创建的虚拟环境,需确保 Anaconda 的路径已正确添加至系统的环境变量中[^1]。这一步骤至关重要,因为只有当 Python 解释器及其关联工具被加入 PATH 后,IDE 才能顺利找到它们。 对于 Windows 用户而言,在安装 Anaconda 时,默认情况下会询问是否将它添加到系统路径里;如果当时选择了否,则现在应该手动完成此操作。具体做法是在“高级系统设置”的“环境变量”选项内编辑 `Path` 变量,追加 Anaconda 安装目录下的 Scripts 文件夹位置。 另外,建议每次新建项目前都通过命令行先激活目标 conda env: ```bash conda activate myenvname ``` 接着再启动 IDE 进入工作区,这样有助于减少兼容性方面的问题发生概率。 #### 常见错误及修复方法 ##### 错误一:未发现任何解释器 症状表现为打开 PyCharm 新建工程向导页面找不到由 Conda 构建出来的 interpreter 列表项。此时应前往 Preferences/Settings -> Project:...->Python Interpreter 下方点击齿轮图标选择 Add...按钮来指定自定义的位置。按照提示浏览定位到对应版本 python.exe 的绝对地址即可解决问题。 ##### 错误二:权限不足导致 DLL 加载失败 有时即使指定了正确的解释器路径,仍可能遇到由于缺乏适当的操作系统级许可而引发的功能缺失现象。特别是涉及到调用某些特定类型的动态链接库 (Dynamic Link Library, .dll) 时尤为明显。因此拥有管理员身份执行相关动作显得尤为重要——无论是从终端还是图形界面触发创建新 venv 流程均如此处理能够有效规避此类隐患。 ##### 错误三:网络连接异常引起依赖下载超时 部分开发者反馈过因网速慢或者其他因素造成 pip install 操作中途断开进而影响整个项目的初始化进度条卡住的情况。对此可尝试调整镜像源加速获取速度或是离线模式预先准备好所需资源包后再继续后续步骤。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值