赞
踩
Linux基于用户身份对资源访问进行控制。
root
用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。超级用户并不是按照名称来定义的,而是通过UID为0来标识。root
用户或其他管理员用户创建,权限受到限制,一般只在用户自己的宿主目录中拥有完整权限。bin
、daemon
、ftp
、mail
等。root
用户。root
用户。/etc/passwd
文件中第4字段记录的即为该用户的基本组GID号。root
,UID为0。一个用户可以属于多个组。
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患。后来经改进,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符“x”
保存用户名称、宿主目录、登录Shell等基本信息。
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
示例行
root:x:0:0:root:/root:/bin/bash
字段1:用户帐号的名称
字段2:用户密码占位符“x”
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名(登录用户名)
字段6:宿主目录
字段7:登录Shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
保存用户的密码、账号有效期等信息
默认只有root用户能够读取内容,且不允许直接编辑该文件中的内容。
示例行
root:$6$VyOUGqOCSv5HILM1wagZC/FwGfnrtJFnIT:18445:0:99999:7:::
字段1:用户帐号的名称
字段2:使用MD5加密的密码字串信息,当为”*”或”!”时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统
字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段6:提前多少天警告用户密码将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
字段8:帐号失效时间,指定了用户作废的天数(从1970年01月01日起计算)为空,表示账号永久可用
字段9:保留字段(未使用)
所有用户(普通用户和伪用户)的密码都是"!!“或”*",代表没有密码是不能登录的。
密码项为"!!“或”*"
普通用户"!!":表示账户还没有设置密码。新创建的用户如果不设定密码,密码项会是"!!",不能登录。
执行命令useradd newuser
后,新用户newuser
的密码项会是"!!"。
伪用户"*":通常用于系统账户,表示账户无法使用密码登录。(伪用户是系统中的特殊账户,通常用于系统进程和服务,而不是实际登录。)
用户间切换仍需密码:虽然密码项为"!!“表示用户没有密码,实际上普通用户之间的切换仍然需要密码验证。即使某个用户的密码项为”!!",也不能在没有密码的情况下登录。
删除密码使可以无密码登录
删除密码:使用passwd -d username
可以删除指定用户的密码,使得用户可以在不需要密码的情况下登录。
删除示例: sudo passwd -d newuser
,此时newuser
就可以在不需要密码的情况下登录,但这会降低系统的安全性。
删前删后字段:删除密码前 newuser:!!:18733:0:99999:7:::
,删除密码后 newuser::18733:0:99999:7:::
,密码项变为空值,即可无密码登录。
Linux系统中的Shell环境多种多样,它们为用户提供了与操作系统交互的接口。
/sbin/nologin
时,系统会拒绝该用户登录并显示一条信息。注
可以通过echo $SHELL
命令来查看当前正在使用的Shell环境;
通过cat /etc/shells
命令来查看当前系统安装的所有Shell种类。
在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。
若未明确指定用户的宿主目录,则在/home日录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow 文件中。
useradd [选项]... 用户名
不添加任何属性和权限控制添加用户lisi
useradd test1 #创建用户
id test1 #查看用户信息
输出以下内容(用户ID,组ID,附加组ID)
uid=1001(test1)gid=1001(test1)组=1001(test1)
用户态最高权限是root,内核态不是,最高权限的身份也不会维护在passwd里。
查看文件中显示信息(tail也可以)
cat /etc/passwd | grep test #过滤test行
输出以下内容,没有指定登录shell默认/bin/bash
test1:x:1001:1001::/home/test1:/bin/bash
添加一个新的用户:
用户的用户名为test2;UID为1002;主目录为/opt/test;所属主组为group3;附加组为group03;登录shell为/bin/bash。
useradd -u 1002 -d /opt/test -g group3 -G group03 -s /bin/bash test2
若提示组不存在,要先新建组
groupadd group3
groupadd group03
groupadd -g 88 group33 ##-g 88:指定新组的GID为88
可以查看组列表
tail -f /etc/group
passwd
命令指定用户名作为参数,对指定用户的密码进行管理。passwd
命令修改自己的密码。passwd [选项]... 用户名
修改用户 username
的密码:
passwd username
从标准输入读取密码并设置用户 username
的密码(需要 root 权限):
echo "123" | passwd --stdin username
用于修改用户账号的属性。
usermod [选项]... 用户名
YYYY-MM-DD
的日期格式。[root@localhost ~]# usermod -u 1003 test # 修改用户的UID
[root@localhost ~]# usermod -d /home/test test # 修改用户的宿主目录
[root@localhost ~]# usermod -s /sbin/nologin test # 指定用户的登录Shell
#注:通常/nologin位于/sbin/
[root@localhost ~]# usermod -L test # 锁定用户账户
[root@localhost ~]# usermod -U test # 解锁用户账户
-bash-4.2表示使用的是bash shelli程序的版本号是4.2,$表示当 前用户是普通用户
[root@localhost home]#cp /etc/skel/.bashrc /home/test/
[root@localhost home]#cp /etc/skel/.bash_profile /home/test/
[root@localhost home]#chown test:test /home/test/.bash_profile
[root@localhost home]#chown test:test /home/test/.bashrc
userdel [-r] 用户名
-r:将该用户的宿主目录一并删除**(常用)**
-f:强制删除用户账户,尤其删除一个正在使用中的用户账户。
注意:可能会导致一些问题,如正在运行的进程无法正确清理其资源。
提示删除用户被占用,但是又没有登录此用户,可能是因为在终端内切换用户导致,此行为会开启多个终端,可以使用ctrl+D退出当前终端。
/etc/profile是系统的全局配置文件,对所有用户都有效。包含一些系统级别的环境变量和默认的系统级别的 shell 配置。
用户登录到系统时,系统会首先执行/etc/profile文件,然后再执行该用户的个人配置文件(如.bashrc、.bash_profile等)。
vim /etc/profile
alias cat='cat -n' #别名设置(一般不用)
source /etc/profile
简要说明
source
:在当前shell环境中执行指定文件的内容。/etc/profile
:一个全局配置文件,包含系统范围内的环境变量和启动脚本设置。.bashrc
和 .bash_profile
是两个常见的 shell 配置文件,主要用于配置用户的 shell 环境。
~/.bashrc
。bash
命令)。~/.bash_profile
。bash --login
命令)。.bashrc
文件的引用、环境变量定义、路径设置等。.bashrc
:每次启动一个新的交互式非登录 shell 时执行。.bash_profile
:每次启动一个新的登录 shell 时执行。.bashrc
:用于配置与交互式 shell 相关的设置,如别名和命令行提示符。.bash_profile
:用于设置环境变量、启动程序等。.bashrc
:常见内容包括命令别名、函数定义、环境变量等。.bash_profile
:常见内容包括调用 .bashrc
、设置 PATH 变量、环境变量等。# 设置命令别名
alias ll='ls -la'
# 定义环境变量
export EDITOR=nano
# 调用 .bashrc 文件
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# 设置 PATH 变量
export PATH=$PATH:$HOME/bin
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
grep "postfix" /etc/group
mail:x:12:postfix
postfix:x:89:
字段1:组帐号的名称
字段2:占位符“x”
字段3:组账号的GID号
字段4:组账号包含的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号",”分隔
groupadd [-g GID] 组账号名
#添加组账号
[root@localhost ~]# groupadd test
[root@localhost ~]# tail -f/etc/group
#指定GID号添加组账号
[root@localhost ~]# groupadd -g 88 group111
[root@localhost ~]# tail -f/etc/group
gpasswd [选项]... 组账号名
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
[root@localhost ~]# useradd aaa
[root@localhost ~]# useradd bbb
#将用户yht、hcy和qzz加入到dn用户组中
[root@localhost ~]# gpasswd -M aaa,bbb,ccc group111
[root@localhost ~]# cat /etc/group
#添加用户到组
[root@localhost ~]# gpasswd -a test1 group001
[root@localhost ~]# cat /etc/group | grep group001
groupdel 组账号名
groupdel test
grep "test" /etc/group
groups [用户名]
注:没有 id [用户名]
显示的详细
id [用户名]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。