赞
踩
linux基于用户身份对资源访问进行控制
● 用户账号
超级用户、普通用户、程序用户
用户账号
超级用户: root用户是 Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户:在安装inux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、 demon、ftp、mail等。
● 组账号
基本组(私有组)
附加组(公共组)
组账号
基本组(私有组):基本组账号只有一个,一般为创建用户时指定的组。在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。
附加组(公共组):用户除了基本组以外,额外添加指定的组。
● UID和GID
UID (User IDentity,用户标识号)
GID (Group IDentity,组标识号)
UID:用户标识号
GID:组标识号
root 用户账号的UID和GID号为固定值0
程序用户账号的UID和GID号默认为Centos5,6: 1~499,Centos7: 1~999
普通用户的UID和GID号默认为Centos5,6: 500~60000,Centos7:1000~60000
保存用户名称、宿主目录、登录shell等基本信息
文件位置:/etc/passwd
每一行对应一个用户的账号记录
root:x:0:0:root:/root:/bin/bash
第一字段root:用户名
第二字段x:占位符
第三字段0:用户的UID号
第四字段0:用户基本组的GID号
第五字段root:用户全名信息的描述
第六字段/root:用户的宿主目录,也就是家目录所在位置
第七字段/bin/bash:用户登录的shell信息(/bin/bash:默认的shell登录信息;/sbin/nologin:不允许登录的shell信息)
保存用户的密码、账号有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录
root:$6$rn9yK8kuso3pcHaI$mi0mdf/UQf9p2PdB/zkG1Zmyh7DtvL2Ckgr1aFjTJP1tFPKwRLaKUzUxLtKvR2b995g4JqOcTuWd6EF/ad4xa0::0:99999:7:::
第一字段root:用户名
第二字段$6$rn9yK8kuso3pcHaI$mi0mdf/UQf9p2PdB/zkG1Zmyh7DtvL2Ckgr1aFjTJP1tFPKwRLaKUzUxLtKvR2b995g4JqOcTuWd6EF/ad4xa0:MD5算法加密(当为"*"或"!!"时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统)
第三字段:::上次修改密码的时间
第四字段0:密码的最短有效天数
第五字段99999:密码的最长有效天数
第六字段7:提前多少天警告用户密码将过期,默认为7
第七字段:::密码过期之后多少天禁用此用户
第八字段:::账号失效时间
第九字段:保留字段(未使用)
useradd命令
useradd命令格式:useradd [选项]…用户名
常用选项:
-u、-d、-e、-g、-G、-M、-s
[root@clr ~]# which useradd #查看外部命令useradd在系统中的位置
/usr/sbin/useradd
[root@clr ~]# ll /usr/sbin/useradd
-rwxr-xr-x. 1 root root 137616 8月 9 2019 /usr/sbin/useradd
[root@clr ~]# which adduser #查看外部命令adduser在系统中的位置
/usr/sbin/adduser
[root@clr ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 3月 23 00:42 /usr/sbin/adduser -> useradd #adduser是个软链接指向useradd
useradd -d ## -e ## -s ##命令:指定用户的宿主目录位置、账户失效时间以及登录shell信息
[root@clr ~]# useradd -d /admin -e 2024-01-01 -s /sbin/nologin admin1 #添加用户admin1,指定家目录/admin;指定失效时间:2024-01-01;指定不能登录到系统的shell命令
[root@clr ~]# useradd -u 2000 -g gaozhenyang -G 1002 admin2 #指定用户admin2的UID号为2000;指定基本组名为gaozhenyang;指定附加组的GID号为1002(admin1)
[root@clr ~]# vim /etc/passwd
admin2:x:2000:1001::/home/admin2:/bin/bash
[root@clr ~]# id admin2
uid=2000(admin2) gid=1001(gaozhenyang) 组=1001(gaozhenyang),1002(admin1) #查看可得,用户admin2的UID为2000;基本组的GID为1001(gzozhenyang);附加组的GID号为1002(admin1)
创建程序用户:useradd -M -s命令:不建立宿主目录,指定用户的登录shell信息
[root@clr ~]# useradd -M -s /sbin/nologin ergouzi #创建程序用户ergouzi,不建立宿主目录,shell登录信息,设置为不允许登录
[root@clr ~]# vim /etc/passwd
ergouzi:x:2001:2001::/home/ergouzi:/sbin/nologin
passwd命令
passwd命令格式:passwd [选项]…用户名
常用选项:
-d、-l、-S、-u
不指定用户名时,修改当前账号的密码
passwd -d命令:清空指定用户的密码,仅使用用户名即可登录系统
[root@clr ~]# passwd -d gaozhenyang
清除用户的密码 gaozhenyang。
passwd: 操作成功
passwd -l命令:锁定用户账户,锁定的用户账号将无法再登录系统
[root@clr ~]# passwd -l gaozhenyang #锁定用户账户,锁定的用户账户将无法再登录系统
锁定用户 gaozhenyang 的密码 。
passwd: 操作成功
[root@clr ~]# passwd -l ergouzi
锁定用户 ergouzi 的密码 。
passwd: 操作成功
passwd -S命令:看用户账户的状态(是否被锁定)
[root@clr ~]# passwd -S gaozhenyang #查看用户账户的状态是否被锁定
gaozhenyang LK 2023-04-02 0 99999 7 -1 (密码已被锁定。)
passwd -u命令:解锁用户账户
[root@clr ~]# passwd -u gaozhenyang #解锁用户账户gaozhenyang
解锁用户 gaozhenyang 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)
[root@clr ~]# passwd -u -f gaozhenyang #-f命令,强制解锁用户
解锁用户 gaozhenyang 的密码。
passwd: 操作成功
设置用户密码之方法二:echo “密码” | passwd --stdin 用户名
[root@clr ~]# echo "abc" | passwd --stdin gaozhenyang #将用户gaozhenyang的密码修改为abc
更改用户 gaozhenyang 的密码 。
passwd:所有的身份验证令牌已经成功更新。
设置用户密码之方法三:echo <用户名>:<密码> | chpasswd
[root@clr ~]# echo gaozhenyang:123 | chpasswd #将用户gaozhenyang的密码修改为123
usermod命令
usermd命令格式:usermod [选项]…用户名
常用选项:
-l、-L、-U
以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s
usermod -l命令:更改用户账号的登录名称。
[root@clr ~]# usermod -l CLR cCLR #更改用户账户cCLR的登录密码
[root@clr ~]# vim /etc/passwd
CLR:x:1000:1000:CLR:/home/cCLR:/bin/bash
usermod -s命令:指定用户的登录shell
[root@clr ~]# usermod -s /bin/bash ergouzi #修改用户账户ergouzi的登录方式,修改为可登录/bin/bash
[root@clr ~]# vim /etc/passwd
ergouzi:x:2001:2001::/home/ergouzi:/bin/bash
usermod -d命令:修改用户的宿主目录位置
[root@clr ~]# usermod -d /admin CLR #修改用户CLR的宿主目录位置为/admin
[root@clr ~]# vim /etc/passwd
CLR:x:1000:1000:CLR:/admin:/bin/bash
"/etc/passwd" 50L, 2568C
usermod -e命令:修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式
[root@clr ~]# usermod -e 2023-12-31 admin1 #修改账户用户admin1的失效时间
[root@clr ~]# vim /etc/shadow
admin1:!!:19449:0:99999:7::19722:
usermod -L命令:锁定用户账户
[root@clr ~]# usermod -L ergouzi #锁定用户账户ergouzi
[root@clr ~]# passwd -S ergouzi #查看用户账户ergouzi的状态,是否已被锁定
ergouzi LK 2023-04-02 0 99999 7 -1 (密码已被锁定。)
usermod -U命令:解锁用户账户
[root@clr ~]# echo ergouzi:123 | chpasswd #为用户账户ergouzi设置密码123
[root@clr ~]# usermod -U ergouzi #解锁用户账户ergouzi
[root@clr ~]# passwd -S ergouzi #查看用户账户ergouzi的状态(是否已被锁定)
ergouzi PS 2023-04-02 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
userdel命令
userdel命令格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
userdel -r命令:删除用户并删除其家目录
[root@clr ~]# userdel -r admin2 #删除用户admin2,并且连同家目录也一并删除
[root@clr ~]# ls /home/ #admin2的家目录已被删除
gaozhenyang
当系统中的某个用户帐号已经不再需要使用时(如该员工已经从公司离职等情况),可以使用userdel命令将该用户帐号删除。
使用userdel命令需要指定帐号名称作为参数,添加"-r"选项时可以将该用户的宿主目录一并删除。
文件来源
● useradd命令添加一个新的用户账号后,会在该用户的宿主目录中建立一些初始配置文件。
● 这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件。
主要的用户初始配置文件
● ~/.bash_profile
● ~/.bashrc
● ~/.bash_logout
查看模板目录隐藏文件/etc/skel/
[root@clr ~]# ls /etc/skel/ -a #查看账号模板目录/etc/skel/下的隐藏文件
. .. .bash_logout(用户退出系统时,加载的文件) .bash_profile(用户登录时,自动加载的环境变量配置文件) .bashrc .mozilla
查看.bash_profile文件
[root@clr ~]# vim .bash_profile #查看并修改.bash_profile文件
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc #./bash_profile文件会调用该用户的~/.bashrc文件
查看.bashrc文件
[root@clr ~]# vim .bashrc #查看并修改.bashrc文件
# .bashrc
# User specific aliases and functions
alias rm='rm -i' #每次登录系统或shell环境时,都会自动执行的程序代码
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc #./bashrc文件会调用./etc/bashrc文件
作用范围:
etc/profile /etc/bashrc 对所有用户有效
~/.bash_profile ~/.bashrc 只针对=当前用户有效
功能用途:
profile:系统启动后用户登录直接执行文件里的命令或者配置
bashrc:用户登录或者用户切换shell环境就会执行文件里的命令或者配置
调用关系:
/etc/profile -> /etc/profile.d/xxx. sh
~/.bash_profile -> ~/.bashrc -> /etc/bashrc
注意:
/etc/profile中的文件,系统启动时会自动执行;
~/.bash_profile的文件,只有在指定用户登录或切换shell环境时,才会执行。
与用户帐号文件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
查看组账号基本信息/etc/group
[root@clr ~]# vim /etc/group
kvm:x:36:qemu
组名:密码占位符:组的GID号:组中用户
[root@clr ~]# useradd -G admin1 zhangsan #添加用户zahngsan,并指定附加组为admin
[root@clr ~]# vim /etc/group
admin1:x:1002:lisi,zhangsan #admin1中有组员lisi和zhangsan
groupadd命令
groupadd命令格式:groupadd [-g GID] 组账号名
示例
groupadd -g命令:添加组,并设置指定的组账号
[root@clr ~]# groupadd -g 2345 mygirl #添加组mygirl,并设置组GID号为2345
[root@clr ~]# vim /etc/group
mygirl:x:2345:
gpasswd命令
● 设置组帐号密码(极少用)、添加/删除组成员
gpasswd命令格式:gpasswd [选项]…组帐号名
`常用选项
● -a:向组内添加一个用户
● -d:从组内删除一个用户成员
● -M:定义组成员列表,以逗号分隔
gpasswd -a命令:向组内添加一个用户
[root@clr ~]# gpasswd -a zhangsan mygirl #用户zhangsan加入到mygirl组中
正在将用户“zhangsan”加入到“mygirl”组中
[root@clr ~]# id zhangsan
uid=2004(zhangsan) gid=2004(zhangsan) 组=2004(zhangsan),1002(admin1),2345(mygirl)
gpasswd -d命令:从组内删除一个用户成员
[root@clr ~]# gpasswd -d zhangsan admin1 #将用户zhangsan从admin1组中删除
正在将用户“zhangsan”从“admin1”组中删除
[root@clr ~]# id zhangsan
uid=2004(zhangsan) gid=2004(zhangsan) 组=2004(zhangsan),2345(mygirl)
gpasswd -M命令:定义组成员列表,以逗号分隔
[root@clr ~]# useradd xiaohua #分别创建三个用户xiaohua,xiaowang,xiaozhang
[root@clr ~]# useradd xiaowang
[root@clr ~]# useradd xiaozhang
[root@clr ~]# gpasswd -M xiaohua,xiaowang,xiaozhang mygirl #将这三个用户xiaohua,xiaowang,xiaozhang,一次性加入到mygirl组中(-M定义组成员列表,定义即覆盖)
[root@clr ~]# vim /etc/group
mygirl:x:2345:xiaohua,xiaowang,xiaozhang
groupdel命令
groupdel命令格式:groupdel 组账号名
示例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。