一、用户账号
1、用户账号概述
(1)Linux基于用户身份对资源访问进行控制
用户账号
- 超级用户(root管理员,权限最高,ID为0)
- 普通用户(较低权限)
- 程序用户(伪用户,不能登录操作系统,只能正常运行服务,比如ftp和apache)
组账号
- 基本组(私有组)
- 附加组(公有组)
UID和GID
- UID (User IDentity,用户标识号)
- GID (Group IDentify,组标识号)
(2)用户的分类
超级用户: root用户是Linux操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于Windows操作系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号。 root 拥有对系统的最高的管理权限ID=0。
普通用户: 普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限
系统用户UID:1-999(centos7版本)1-499(centos6版本)
UID:即每个用户的身份标示,类似于每个人的身份证号码。
程序用户: 在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不介许登录到系统,而仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail等
伪用户一般不会用来登录系统的,它主要是用于维持某个服务的正常运行如:ftp,apache
UID: 即每个用户的身份标示,类似于每个人的身份证号码。
普通组:GID
- 系统组:1-499(Cent0S6) 1-999(CENTOS7)
- 普通组:500+(CentoS6) 1000+(CENTOS7)
组账号:
- 基本组
- 附加组
2、用户账号文件/etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息
- 文件位置:/etc/passwd
- 每一行对应一个用户的账号记录
七个字段:
3、用户账号文件/etc/shadow
保持用户的密码、账号有效期等信息
- 文件位置:/etc/shadow
- 每一行对应一个用户的密码记录
2. UID
useradd命令
useradd命令格式:useradd [选项]…用户名
常用选项:
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目录。
-s:指定用户的登录Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。
useradd -d ## -e ## -s ##命令:指定用户的宿主目录位置、账户失效时间以及登录shell信息
useradd -d /admin -e 2024-01-01 -s /sbin/nologin admin1
#添加用户admin1,指定家目录/admin;指定失效时间:2024-01-01;指定不能登录到系统的shell命令
创建程序用户:useradd -M -s命令:不建立宿主目录,指定用户的登录shell信息
useradd -M -s /sbin/nologin ergouzi
#创建程序用户ergouzi,不建立宿主目录,shell登录信息,设置为不允许登录
2.2 设置/更改用户口令passwd
passwd命令
passwd命令格式:passwd [选项]…用户名
指定用户名时,修改当前账号的密
passwd -d命令:清空指定用户的密码,仅使用用户名即可登录系统
passwd -l命令:锁定用户账户,锁定的用户账号将无法再登录系统
passwd -S命令:看用户账户的状态(是否被锁定)
passwd -u命令:解锁用户账户
设置用户密码之方法二:echo “密码” | passwd --stdin 用户名
设置用户密码之方法三:echo <用户名>:<密码> | chpasswd
2.3 修改用户账号属性usermod
usermod命令
usermd命令格式:usermod [选项]…用户名
修改用户账号属性 usermod
-u:修改用户的 UID 号。
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:修改用户的基本组名(或使用 GID 号)。
-G:修改用户的附加组名(或使用 GID 号)。
-s:指定用户的登录 Shell。
-l:更改用户账号的登录名称。
-L:锁定用户账户。
-U:解锁用户账户。
将 admin1 用户的登录名称更改为 master
usermod -l master admin1
删除用户账号 userdel
userdel [-r] 用户名
添加“-r”选项时可以将该用户的宿主目录一并删除
3、用户账号的初始配置文件
用户宿主目录下的初始配置文件只对当前用户有效
~/.bash_profile
#此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的~/.bashrc文件
~/.bashrc
#此文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行,并且会调用/etc/bashrc文件
~/.bash_logout
#此文件中的命令将在用户每次退出登录或退出bash shell时执行
二、组账号
1、组账号文件
与用户账号文件相类似
- etc/group:保存组账号基本信息
- etc/gshadow:保存组账号的密码信息
2、添加账号-groupadd
groupadd命令
- groupadd [-g GID] 组账号名
3、添加删除组成员-gpasswd
gpasswd命令
设置组账号密码(极少用)、添加/删除组成员
gpasswd [选项] 组账号名
常用选项
-a:添加用户到组
-d:从组删除用户
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
4、删除组账号-groupdel
groupdel命令
- groupdel 组账号名
5、查询账号信息
(1)groups命令
- 查询用户所属的组
- groups [用户名]
(2)id命令
- 查询用户身份标识
- id [用户名]
(3)finger命令
查询用户账号的详细信息
- finger [用户名]
查询用户帐号的详细信息 finger,需要先进行安装finger软件包
yum install -y finger
finger [用户名]
(4)w、who、users命令
查询已登录到主机的用户信息
三、文件/目录的权限和归属
访问权限
- 读取r:允许查看文件内容、显示目录列表
- 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行x:允许运行程序、切换目录
归属(所有权)
- 属主:拥有该文件或目录的用户帐号
- 属组:拥有该文件或目录的组帐号
2、设置文件和目录的权限chmod
chmod 权限变更格式 文件或目录路径
- chmod [ugoa] [+ - =] [rwx] 文件或目录
- chmod nnn 文件或目录
3、设置文件和目录的归属chown
chown命令
- chown 属主 文件或目录
- chown :属组 文件或目录
- chown 属主:属组 文件或目录
-R:递归修改指定目录下所有子目录及文件的权限
4、权限掩码umask
umask作用
- 控制新建的文件或目录的权限
- 默认权限去除umask的权限为新建的文件或者目录的权限
umask设置:umask 022
umask查看:umask