目录
4.w、who、users命令(查询已登录到主机的用户信息)
一、用户账户和组账户
1.用户账户
1.1超级用户
登录后显示“#”,拥有本机至高无上的权限,root是操作系统默认的超级用户账号
1.2普通用户
登录后显示“$”,账号权限受限制,一般只有在用户自己的家目录中有完整权限;普通用户无法修改网卡配置
1.3程序用户
在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail 等。
2.组账户
2.1基本组:用户加入的第一个组
2.2附加组:用户额外加入的除了基本组以外的组
2.3.UID和GID
UID:用户账户ID
GID:组账户ID
UID/GID | UID/GID | |
root | 0 | |
centos7以前 | centos7开始 | |
程序用户 | 1~499 | 1~999 |
普通用户 | 500~60000 | 1000~60000 |
3.用户账户文件
3.1用户账号文件/etc/passwd
作用:保存用户名称、宿主目录、登录Shell等基本信息
文件位置:/etc/passwd/,有七个字段;每一行对应一个用户的帐号记录
第一个字段:用户名称
第二个字段:密码占位符
第三个字段:uid
第四个字段:gid
第五个字段:用户全名
第六个字段:用户家目录
第七个字段:登录Shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
3.2用户密码文件/etc/shadow
作用:保存用户的密码、账号有效期等信息;默认只有 root 用户能够读取 shadow 文件中的内容,且不允许直接编辑该文件中的内容。
文件位置: /etc/shadow,有九个自段;每一行对应一个用户的密码记录
示列:
root : $1$55HB4pbx$acHqk4IZiHTZ9cw0ZJe8f0 : 14374 : 0 : 99999 : 7 : : :
字段1:用户帐号的名称
字段2:密码字符串
字段3:上次修改密码的时间,表示从1970.1.1算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数,默认为0不限制
字段5:密码的最长有效天数,默认为99999永久不过期
字段6:提前多少天警告用户密码将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,从1970.1.1开始算起
字段9:保留字段(未使用)
二、用户管理操作
1.useradd命令(创建用户)
作用:创建用户
命令行格式:useradd 选项 用户名
id命令
查看用户UID/GID/组信息
useradd命令常用选项
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目录。
-s:指定用户的登录Shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。
示例1
创建scj用户,指定UID为9527,不建立家目录,且禁止用户登录系统
-u指定UID号 -s指定用户登录shell为/sbin/nologin
示例2
创建qwery用户,指定家目录/opt/qw且指定GID为用户scj的GID
指定GID为scj用户GID;家目录为/opt/qw
示例3
创建用户zxc,并指定附加组
创建用户xcv,且指定用户失效时间为2025.1.1
2.passwd命令(设置/更改用户密码)
作用:设置/更改用户密码
命令行格式:passwd 选项 用户名
-d:清空指定用户的密码,仅使用用户名即可登录系统。
-l:锁定用户账户,锁定的用户账号将无法再登录系统。
-S:查看用户账户的状态(是否被锁定)。
-u:解锁用户账户。
设置密码方法2
echo 新密码 | passwd --stdin 用户
设置密码方法3
echo 用户名:新密码 | chpasswd
3.usermod命令(修改用户账号的属性)
作用:修改用户账号的属性
命令行格式:usermood 用户名称 选项
常用命令:
-u:修改用户的 UID 号。
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:修改用户的基本组名(或使用 GID 号)。
-G:修改用户的附加组名(或使用 GID 号)。
-s:指定用户的登录 Shell。
-l:更改用户账号的登录名称。
-L:锁定用户账户。
-U:解锁用户账户。
其中-u -d -e -g -G -s 选项与useradd命令中相同
-l:更改用户账号的登录名称。
命令行格式:usermood 原用户名称 -l 新用户名称
示例:
修改用户xcv名称为xc
-L:锁定用户账户。
-U:解锁用户账户。
命令行格式:命令 选项 用户名
4.userdel命令(删除用户账号)
作用:删除用户账号
-r:连带家目录一并删除
三、用户账号的初始配置文件
1.文件来源
新建用户账号时,从/etc/skel目录中复制而来
2.主要的用户初始配置文件
只对当前用户有效
2.1~/.bash_profile
此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的~/.bashrc文件
2.2~/.bashrc
此文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行,并且会调用/etc/bashrc文件
2.3~/.bash_logout
此文件中的命令将在用户每次退出登录或退出bash shell时执行
3.全局配置文件
对所有用户有效
3.1/etc/profile
这个文件是为系统全局变量配置文件,可通过重启系统或者执行source /etc/profile 命令使profile文件被读取
3.2/etc/profile.d/
这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本
3.3/etc/bashrc
每一个运行bash shell的用户都会执行此文件,可通过执行bash 命令打开一个新的bash shell时,使 bashrc文件被读取
4.组账号文件
与用户文件相类似
/etc/group 保存组账号基本信息
/etc/gshadow 保存组账号的密码信息
grep "^root" /etc/group ### 检索root 组包括那些用户
grep "root" /etc/group ### 检索那些组包括root用户
查询组账号文件 vi /etc/group
有4个字段:组账号名:x占位符:GID号:组账号成员
5.groupadd命令(添加组账号)
作用:添加组账号
命令行格式:groupadd -g GID 组账号名;指定组账号的GID号
6.gpasswd命令(添加删除组成员)
作用:添加删除组成员
命令行格式:gpasswd 组名 选项 用户
选项:
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:重新定义组成员列表,以逗号分隔
同时将两个用户添加到一个组当中
7.groupdel命令(删除组账号)
作用:删除组账号
命令行格式:groupdel 组账号名称
示例:删除组账号cc
groupdel cc
四、查询账号信息
1.groups命令(查询用户所属组)
作用:查询用户所属组
命令行格式:groups 用户名
2.id命令(查询用户身份标识)
作用:查询用户身份标识
命令行格式:id 用户名
3.finger命令(查询用户的登录属性)
作用:查询用户的登录属性(需提前安装finger软件)
命令行格式:finger 用户名
4.w、who、users命令(查询已登录到主机的用户信息)
作用:查询已登录到主机的用户信息
五、查看文件/目录的权限和归属
1.chmod命令(设置文件和目录的权限)
作用:设置文件和目录的权限
命令行格式:chmod 三位八进制数字 文件或目录
设置文件local.repo所有者权限可读可写可执行,属组可读可写,其他用户可执行
常用选项-R
递归修改指定目录下所有子项的权限
2.chown命令(设置文件和目录的归属)
作用:设置文件和目录的归属
3.umask命令(设置目录和文件的默认权限)
作用:设置目录和文件的默认权限
文件的最大默认权限为 6;目录的最大默认为 7
设置默认权限:umask nnn;查询umask的值:umask