一、用户账号和组账号
1.用户账号分类
用户账号分为超级用户、普通用户、程序用户。
超级用户: root用户是 Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、 daemon、 ftp、 mail等。
2.组账号分类
组账号分为基本组和附加组。
基本组(私有组):基于某种特定联系(如都需要访问 ftp 服务),将多个用户集合在一起,构成一个用户组,表示该组内所有用户的账号称为组账号,每一个用户账号至少属于一个组 (创建用户时,会自动创建一个所属组,当前创建的用户默认属于当前的组) ,这个组称为该用户的基本组(私有组)。
附加组(公共组): 若该用户同时还包含在其它的组中,则这些组称为该用户的附加组(公共组)。
3.UID和GID
UID(User IDentify):相当于身份证,用户标识号。
GID(Group IDentify) : 组标识号,标识一个组的id。
程序用户的UID和GID号默认范围是:1~499(Centos5版本和Centos6版本)和 1~999(Centos7版本)
普通用户的UID和GID号默认范围是:500~60000(Centos5版本和Centos6版本)和 1000~60000( Centos7版本)
注意:root用户账号的UID和GID号为固定值0。
二、用户文件
1.用户帐号文件
用户帐号文件在/etc/passwd
目录下。主要是用来保存用户名称、宿主目录、登录 shell 等基本信息的文件。每当创建了一个新用户,都会在此文件中自动生成一组记录,用来描述新创建的信息。
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。
/etc/passwd字段的含义:
test:x:1000:1000:test:/home/test:/bin/bash
以上面的为例,用来解释各个字段的含义(主要可以分为7个字段)
-
字段1:
test
,这是用户账号的名称,用户名仅是为了方便记忆。Linux系统是通过UID来识别用户身份,分配用户权限。 -
字段2:
x
,这是密码占位符,表示此用户设有密码,但是不是真正的密码,真正的密码保存在 /etc/shadow 文件中。此文件只有 root 用户可以浏览和操作,提高安全性。 -
字段3:
1000
,这是用户账号的UID号,普通用户的账号从1000开始,(1-999保留给程序用户)。 -
字段4:
1000
,这是所属基本组账号的GID号。 -
字段5:
test
,这是用来描述并解释用户信息的。 -
字段6:
/home/test
,这是宿主目录,即该用户登录后在默认的工作目录。 -
字段7:
/bin/bash
,这是用户登录Shell信息(/bin/bash
为可登陆系统,/sbin/nologin
和/bin/false
为禁止用户登陆系统)。
注意:如果想要获取帮助可以输入man 5 passwd
命令搜索。
2.用户密码文件
在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符"x”。
用户密码文件在/etc/shadow
保存用户的密码、账号有效期等信息。只有 root 用户有读权限,其它用户没有任何权限,这样就保证了用户密码的安全性。
/etc/shadow字段的含义:
root :l$6$vyOUGqoc$v5HlLM1wagZC/FwGfnrtJFnlT:18445:0:99999:7: : :
以上面的为例,用来解释各个字段含义(主要可以分为9个字段)
-
字段1:
root
,这是用户账号的名称,用户名仅是为了方便记忆。Linux系统是通过UID来识别用户身份,分配用户权限。 -
字段2:
l$6$vyOUGqoc$v5HlLM1wagZC/FwGfnrtJFnlT
,这是使用MD5加密的密码字串信息,当为"*“或”!!"时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统。 -
字段3:
18445
,这是上次修改密码的时间,表示从1970年01月o1日算起到最近一次修改密码时间隔的天数。 -
字段4:
0
,这是密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为o,表示不进行限制。 -
字段5:
99999
,这是密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制。 -
字段6:
7
,这是提前多少天警告用户密码将过期,默认值为7。 -
字段7:
-
字段8:
-
字段9:
三、常用用户账号管理命令
1.useradd、adduser——添加用户账号命令
在/etc/passwd文件和/etc/shadow文件的末尾增加该用户账号的记录。
若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow文件中。
基本的命令格式:
useradd [选项] 用户名
常用选项的参数以及含义
选项 | 含义 |
---|---|
-u | 指定用户的UID号,要求该UID号码未被其他用户使用。 |
-d | 指定用户的宿主目录位置(当与-M一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录。 |
-e | 指定用户的账户失效时间,可使用 YYYY-MM-DD的日期格式。 |
-g | 指定用户的基本组名(或使用GID号),对应的组名必须已存在。 |
-G | 指定用户的附加组名(或使用GID号),对应的组名必须已存在。 |
-M | 不建立宿主目录。 |
-s | 指定用户的登录Shell。(比如/bin/bash 为可登陆系统,/sbin/nologin 和/bin/false 为禁止用户登陆系统)) |
基本使用方式
直接添加用户信息并查看账号信息
[root@host ~]# useradd zhangsan
[root@host ~]# vim /etc/passwd
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
[root@host ~]# vim /etc/shadow
//此处!!是因为没有设置密码
zhangsan:!!:19447:0:99999:7:::
创建用户admin1,将此文件添加至根目录下admin目录,并设定用户失效时间是2024/01/01,且禁止用户登录系统
[root@host ~]# useradd -d /admin -e 2024-01-01 -s /sbin/nologin admin1
[root@host ~]# vim /etc/passwd
admin1:x:1002:1002::/admin:/sbin/nologin
//查看admin基本组是否创建成功
[root@host ~]# ls /
admin boot etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
创建用户admin2,指定UID2000并设定基本组admin1以及附加组1000
[root@host ~]# useradd -u 2000 -g admin1 -G 1000 admin2
//可以查看基本组以及UID
[root@host ~]# vim /etc/passwd
admin1:x:1002:1002::/admin:/sbin/nologin
admin2:x:2000:1002::/home/admin2:/bin/bash
[root@host ~]# id admin2
//admin2同属两个组admin1和test
uid=2000(admin2) gid=1002(admin1) 组=1002(admin1),1000(test)
创建给其他程序应用的用户lisi
[root@host ~]# useradd -M -s /sbin/nologin lisi
[root@host ~]# vim /etc/passwd
lisi:x:2001:2001::/home/lisi:/sbin/nologin
//查看home目录是否有由lisi目录
[root@host ~]# ll /home
总用量 0
drwx------. 3 admin2 admin1 78 3月 31 19:25 admin2
drwx------. 3 test test 78 3月 22 19:45 test
drwx------. 3 zhangsan zhangsan 78 3月 31 19:02 zhangsan
2.passwd——设置用户密码命令
不同的用户修改密码方式不一致。root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。普通用户却只能执行单独的"passwd"命令修改自己的密码。
基本的命令格式
passwd [选项] 用户名
另外还有两种设置用户密码的方法:
echo "密码" | passwd --stdin 用户名
eche <用户名>:<密码> | chpasswd
常用选项的参数以及含义
选项 | 作用 |
---|---|
-d | 清空指定用户的密码,仅适用用户名即可登录系统 |
-l | 锁定用户账户(锁定之后,在/etc/shadow里面密码字段中前面多出两个!) |
-u | 解锁用户账户 |
-S | 查看用户的状态(是否被锁定) |
基本使用方式
创建指定用户的密码(一般情况下密码需要设置8个字符,包含大小写字母、数字以及符号)
[root@host ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:123
无效的密码: 密码少于 8 个字符
重新输入新的 密码:123
passwd:所有的身份验证令牌已经成功更新。
//查看密码是否创建成功
[root@host ~]# vim /etc/shadow
zhangsan:$6$pgpk6005$lGoOgJbrHABT1LEtU.XAoF9frLPqYQYjK.jumSCDBFzF.QfGHkhy6BAldgZ0W/AC6sHeOzPocQ.gXHKQqh4uB0:19447:0:99999:7:::
设置指定用户无密码登录(一般情况下不建议这样操作)
[root@host ~]# passwd -d zhangsan
清除用户的密码 zhangsan。
passwd: 操作成功
[root@host ~]# vim /etc/shadow
zhangsan::19447:0:99999:7:::
锁定指定用户,使其无法登录
[root@host ~]# passwd -l zhangsan
锁定用户 zhangsan 的密码 。
passwd: 操作成功
[root@host ~]# passwd -S zhangsan
zhangsan LK 2023-03-31 0 99999 7 -1 (密码已被锁定。)
解锁指定用户(若用户无密码需要-f强制解锁)
[root@host ~]# passwd -u zhangsan
解锁用户 zhangsan 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)
[root@host ~]# passwd -u -f zhangsan
解锁用户 zhangsan 的密码。
passwd: 操作成功
[root@host ~]#
使用echo方式修改密码
[root@host ~]# echo '123456' | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
//或者
[root@host ~]# echo zhangsan: 123123 | chpasswd
3.usermod——修改用户账号的属性
usermod命令修改系统帐户及账户相关的各项属性。如果用户的数字用户ID、用户名或用户的主目录发生更改,则必须确保在执行此命令时,命名用户未执行任何进程。usermod在Linux上对此进行检查,但仅检查用户是否根据其他架构上的utmp登录。您必须手动更改任何crontab文件或at作业的所有者。必须在NIS服务器上进行涉及NIS的任何更改。usermod命令的操作修改的是/etc/passwd
和/etc/shadow
这两个文件中的内容。
基本的命令格式
usermod [选项] 用户名
常用选项的参数以及含义
选项 | 含义 |
---|---|
-u | 修改用户的UID号,要求该UID号码未被其他用户使用。 |
-d | 修改用户的宿主目录位置(当与-M一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录。 |
-e | 修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式。 |
-g | 修改用户的基本组名(或使用GID号),对应的组名必须已存在。 |
-G | 修改用户的附加组名(或使用GID号),对应的组名必须已存在。 |
-s | 修改用户的登录Shell。(比如/bin/bash 为可登陆系统,/sbin/nologin 和/bin/false 为禁止用户登陆系统)) |
-l | 修改用户的账号名称。 |
-L | 暂将用户的密码冻结,禁止其登录。 |
-U | 暂将用户的密码解冻。 |
基本使用方式
修改指定用户名的账号名称
[root@host ~]# usermod -l wangwu lisi
[root@host ~]# vim /etc/passwd
wangwu:x:2001:2001::/home/lisi:/sbin/nologin
修改指定用户可以登录系统
[root@host ~]# usermod -s /bin/bash wangwu
[root@host ~]# vim /etc/passwd
wangwu:x:2001:2001::/home/lisi:/bin/bash
修改指定用户登录的目录
[root@host ~]# usermod -d /admin admin2
[root@host ~]# vim /etc/passwd
admin1:x:1002:1002::/admin:/sbin/nologin
admin2:x:2000:1002::/admin:/bin/bash
修改指定用户的账号失效时间
[root@host ~]# usermod -e 2023-12-31 admin1
[root@host ~]# vim /etc/shadow
admin1:!!:19447:0:99999:7::19722:
锁定指定用户,然后解锁用户
[root@host ~]# usermod -L test
[root@host ~]# passwd -S test
test LK 1969-12-31 0 99999 7 -1 (密码已被锁定。)
[root@host ~]# usermod -U test
[root@host ~]# passwd -S test
test PS 1969-12-31 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
注意:passwd -l test
也可以锁定用户;passwd -u test
也可以解锁用户
4.userdel——删除用户账号
基本的命令格式
userdel [-r] 用户名
添加-r
选项时,表示连用户的宿主目录一并删除。
基本使用方式
保留家目录删除用户账号
[root@host ~]# userdel zhangsan
//查看zhangsan已经被删除
[root@host ~]# vim /etc/passwd
//在家目录下查看zhangsan目录还存在
[root@host ~]# ls /home/
admin2 test zhangsan
//想要彻底删除需要rm -rf
[root@host ~]# rm -rf /home/zhangsan/
彻底删除用户账号
[root@host ~]# userdel -r test
[root@host ~]# ls /home/
admin2
四、配置文件
1.文件来源
通过ls -lA
命令可以查看到隐藏文件,其中.bash_history
、 .bash_logout
、 .bash_profile
、 .bashrc
这些文件都是用户初始配置文件,每个用户的目录都有以bash开头的文件。
[root@host ~]# ls -lA
总用量 48
-rw-------. 1 root root 1873 3月 22 19:53 anaconda-ks.cfg
-rw-------. 1 root root 136 3月 30 09:03 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
drwx------. 14 root root 4096 3月 22 19:57 .cache
drwxr-xr-x. 14 root root 261 3月 22 19:54 .config
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
drwx------. 3 root root 25 3月 22 19:53 .dbus
-rw-------. 1 root root 16 3月 22 19:54 .esd_auth
-rw-------. 1 root root 620 3月 22 19:57 .ICEauthority
-rw-r--r--. 1 root root 1921 3月 22 19:53 initial-setup-ks.cfg
drwx------. 3 root root 19 3月 22 19:54 .local
drwx------. 5 root root 66 3月 22 19:57 .mozilla
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
-rw-------. 1 root root 100 3月 31 20:49 .Xauthority
drwxr-xr-x. 2 root root 6 3月 22 19:54 公共
drwxr-xr-x. 2 root root 6 3月 22 19:54 模板
drwxr-xr-x. 2 root root 6 3月 22 19:54 视频
drwxr-xr-x. 2 root root 6 3月 22 19:54 图片
drwxr-xr-x. 2 root root 6 3月 22 19:54 文档
drwxr-xr-x. 2 root root 6 3月 22 19:54 下载
drwxr-xr-x. 2 root root 6 3月 22 19:54 音乐
drwxr-xr-x. 2 root root 6 3月 22 19:54 桌面
[root@host ~]#
useradd
命令添加一个新的用户账号后在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录/etc/skel
,基本上都是隐藏文件。
简单来说就是只要创建用户,就会从/etc/skel拷贝出初始配置文件至用户家目录中。
2.用户账号的初始配置文件
用户宿主目录下的初始配置文件只对当前用户有效。
具体的模板文件可以通过以下命令查看:
[root@host ~]# ls /etc/skel/ -a
. .. .bash_logout .bash_profile .bashrc .mozilla
其中简单介绍一下这三个初始配置文件以及其作用
文件名 | 作用 |
---|---|
~/.bash_profile | 此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的~/.bashrc文件。 |
~/.bashrc | 此文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行,并且会调用/etc/bashrc文件。 |
~/.bash_logout | 此文件中的命令将在用户每次退出登录或退出bash shell时执行。 |
注:~代表当前用户的家目录
例如:
[root@host ~]# su lisi
[lisi@host root]$ ls /home/
lisi test zhangsan
[lisi@host root]$ vim /home/zhangsan/.bash_profile
"/home/zhangsan/.bash_profile" [权限不足] 0,0-1 全部
可以看出来lisi用户无法执行zhangsan用户的.bash_profile
文件
3.全局配置文件
全局配置文件对所有用户有效
文件名 | 作用 |
---|---|
/etc/profile | 这个文件是为系统全局变量配置文件。主要用于设置开机后自动执行的命令和环境变量设置。只会在系统启动后执行一次,还可以使用 scorce /etc/profile 或./etc/profile 手动加载生效。 |
/etc/profile.d/ | 这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本。 |
/etc/bashrc | 每一个运行bash shell的用户都会执行此文件,可通过执行bash 命令打开一个新的bash shell时,使 bashrc文件被读取。可以用来设置自动执行的命令和环境变量设置,会在任意用户每次登录或切换shell环境(su``,bash 等命令)都会执行。 |
例如:
设置路由配置,使得任何用户登录都会执行
/etc/profile
配置文件,不需要单独设置路由。
//查看路由
[root@host ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.223.2 0.0.0.0 UG 100 0 0 ens32
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.223.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
[root@host ~]# vim /etc/profile
//在最后一行输入
route add -net 10.0.0.0/24 gw 192.168.223.2 dev ens32
//重启系统
[root@host ~]# reboot
//查看路由
[root@host ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.223.2 0.0.0.0 UG 100 0 0 ens32
10.0.0.0 192.168.223.2 255.255.255.0 UG 0 0 0 ens32
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.223.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
更改全局配置,使每个用户下的ls -alh命令都改成myls
[root@host ~]# alias myls="ls -alh"
[root@host ~]# myls
总用量 56K
dr-xr-x---. 15 root root 4.0K 3月 31 21:33 .
dr-xr-xr-x. 17 root root 224 3月 22 19:52 ..
...
drwxr-xr-x. 2 root root 6 3月 22 19:54 下载
drwxr-xr-x. 2 root root 6 3月 22 19:54 音乐
drwxr-xr-x. 2 root root 6 3月 22 19:54 桌面
[root@host ~]# su
[root@host ~]# myls
bash: myls: 未找到命令...
[root@host ~]# exit
exit
[root@host ~]# myls
总用量 56K
dr-xr-x---. 15 root root 4.0K 3月 31 21:40 .
dr-xr-xr-x. 17 root root 224 3月 22 19:52 ..
...
drwxr-xr-x. 2 root root 6 3月 22 19:54 下载
drwxr-xr-x. 2 root root 6 3月 22 19:54 音乐
drwxr-xr-x. 2 root root 6 3月 22 19:54 桌面
由此可知,myls
命令只能在上一个shell环境有效,如果想要在全部环境有效,可以在/etc/bashrc
配置。
[root@host ~]# vim /etc/bashrc
//在最后一行添加
alias myls="ls -alh"
[root@host ~]# su
[root@host ~]# su
[root@host ~]# myls
总用量 64K
dr-xr-x---. 15 root root 4.0K 3月 31 21:44 .
dr-xr-xr-x. 17 root root 224 3月 22 19:52 ..
...
drwxr-xr-x. 2 root root 6 3月 22 19:54 下载
drwxr-xr-x. 2 root root 6 3月 22 19:54 音乐
drwxr-xr-x. 2 root root 6 3月 22 19:54 桌面
4.PATH生效的原理
PATH变量是用于设置可执行程序的默认搜索路径。
每次启动系统的时候会初始化命令,会执行/etc/profile
和~/.bash_profile
。/etc/profile
会将路径/usr/local/bin
、/usr/bin
、/usr/local/sbin
、/usr/sbin
追加到PATH中去。然后调用 /etc/profile.d
目录下的脚本。
五、组账号管理
1.组账号文件
组帐号文件在/etc/group
目录下。主要是用来保存组账号基本信息。
具体组账号信息可以通过以下来查看
[root@host ~]# vim /etc/group
/etc/group字段的含义:
root:x:0:zhangsan
-
字段1:
root
,这是组账号的名称。 -
字段2:
x
,这是组的加密口令。 -
字段3:
0
,是系统区分不同组的ID,在/etc/passwd中的GID字段是用这个数来指定用户的基本组。 -
字段4:
zhangsan
,是用“;”分开的用户名,列出的成员以该组为附加组。
2.组账号密码文件
组帐号密码文件在/etc/gshadow
目录下。主要是用来保存组账号的密码信息。一般来说很少给组设置密码,应用很少。
六、常用组账号管理命令
1.groupadd——添加组账号
基本的命令格式:
groupadd [-g GID] 组账号名
基本使用方式
[root@host ~]# groupadd -g 9527 admin
[root@host ~]# vim /etc/group
admin:x:9527:
2.gpasswd——添加删除组成员
gpasswd主要是用来设置账号密码(极少用)、添加或删除组成员的。
基本的命令格式:
gpasswd [选项] 组账号名
常用选项的参数以及含义
选项 | 含义 |
---|---|
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔 |
基本使用方式
将指定用户添加某个组中
[root@host ~]# gpasswd -a zhangsan admin
正在将用户“zhangsan”加入到“admin”组中
[root@host ~]# id zhangsan
uid=1003(zhangsan) gid=1003(zhangsan) 组=1003(zhangsan),0(root),9527(admin)
[root@host ~]#
将指定的用户从某个组删除
[root@host ~]# gpasswd -d zhangsan admin
正在将用户“zhangsan”从“admin”组中删除
[root@host ~]# id zhangsan
uid=1003(zhangsan) gid=1003(zhangsan) 组=1003(zhangsan),0(root)
添加多个用户至指定的组内
[root@host ~]# gpasswd -M zhangsan,lisi,wangwu admin
[root@host ~]# vim /etc/group
admin:x:9527:zhangsan,lisi,wangwu
注意:使用gpasswd -M
会定义多个组员,但会覆盖之前的组成员
3.groupdel——删除组账号
基本的命令格式:
groupdel 组账号名
基本使用方式
[root@host ~]# groupdel admin
[root@host ~]# vim /etc/group
4.查询账号信息
groups命令——查询用户所属的组
基本的命令格式:
group [用户名]
基本使用方式
[root@host ~]# gpasswd -a zhangsan root
正在将用户“zhangsan”加入到“root”组中
[root@host ~]# gpasswd -a zhangsan test
正在将用户“zhangsan”加入到“test”组中
[root@host ~]# groups zhangsan
zhangsan : zhangsan root test
id命令——查询用户身份标识
基本的命令格式:
id [用户名]
基本使用方式
[root@host ~]# gpasswd -a zhangsan root
正在将用户“zhangsan”加入到“root”组中
[root@host ~]# gpasswd -a zhangsan test
正在将用户“zhangsan”加入到“test”组中
[root@host ~]# groups zhangsan
[root@host ~]# id zhangsan
uid=1003(zhangsan) gid=1003(zhangsan) 组=1003(zhangsan),0(root),1000(test)
finger命令——查询账号的登录属性
注意:需要先进行安装finger软件包
基本的命令格式:
finger [用户名]
基本使用方式
[root@host yum.repos.d]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 五 3月 31 21:33 (CST) on pts/0 from 192.168.223.1
2 seconds idle
On since 五 3月 31 22:25 (CST) on pts/1 from 192.168.223.1
10 minutes 10 seconds idle
On since 五 3月 31 22:35 (CST) on :0 from :0 (messages off)
No mail.
No Plan.
w、who、users命令——查询已登录到主机的用户信息
基本使用方式
[root@host yum.repos.d]# w
22:41:43 up 1:08, 3 users, load average: 0.01, 0.08, 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.223.1 21:33 7.00s 0.31s 0.02s w
root pts/1 192.168.223.1 22:25 10:47 0.07s 0.02s vim /etc/g
root :0 :0 22:35 ?xdm? 55.99s 0.17s /usr/libex
[root@host yum.repos.d]# who
root pts/0 2023-03-31 21:33 (192.168.223.1)
root pts/1 2023-03-31 22:25 (192.168.223.1)
root :0 2023-03-31 22:35 (:0)
[root@host yum.repos.d]# users
root root root
其中load average
用于显示当前系统负载情况。
七、文件/目录的权限和归属
1.文件/目录的读写执行权限
读写执行权限
- 读取r: 允许查看文件内容 (有rx权限才可以显示目录列表)
- 写入w: 允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行x: 允许运行程序、切换目录
访问权限 | 英文 | 权限值 |
---|---|---|
读 | r | 4 |
写 | w | 2 |
执行 | x | 1 |
读写执行 | rwx | 7 |
补充:
特殊权限SBIT (t):SBIT权限只能用于对目录进行设置,使指定目录中的文作或者目录只有所有者才能删除文件或者目录。
归属(所有权)
- 属主:拥有该文件或目录的用户帐号
- 属组:拥有该文件或目录的组帐号
查看文件/目录的权限和归属
[root@host ~]# ls -i install.log
-rw-r-r--. 1 root root 34298 04-02 00:23 install.log
-rw-r-r--
部分的第一个字符表示文件类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号"””(普通文件)、字母"”(链接文件)等。
其余部分指定了文件的访问权限。
在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符:r
可读;w
可写;x
可执行;-
无权限。
r
、w
、x
、-
权限字符还可分别表示为8讲制数字4、2、1、0。
2.chmod——设置文件和目录的权限
基本的命令格式
chmod [ugoa] [+-=] [rwx] 文件或目录
[ugoa]
:u
、g
、o
、a
分别表示属主、属组、其他用户、所有用户。
[+-=]
:+
、-
、=
分别表示增加权限、删除权限、设置权限。
[rwx]
:r
、w
、x
分别表示读权限、写权限、运行权限。
chmod nnn 文件或目录
nnn
:代表3为八进制数,是r
、w
、x
所代表的二进制数,即4、2、1
常用选项的参数以及含义
选项 | 作用 |
---|---|
-R | 递归修改指定目录下所有子项的权限 |
基本使用方式
为文件修改权限
[root@host ~]# touch test.txt
[root@host ~]# ll
-rw-r--r--. 1 root root 0 3月 31 23:21 test.txt
[root@host ~]# chmod 755 test.txt
[root@host ~]# ll
-rwxr-xr-x. 1 root root 0 3月 31 23:21 test.txt
为文件添加或删除权限
[root@host ~]# ll
-rw-------. 1 root root 0 3月 31 23:21 test.txt
//其中a可以省略。但如果想要添加写的权限,a不可以省略。
[root@host ~]# chmod a+r test.txt
[root@host ~]# ll
-rw-r--r--. 1 root root 0 3月 31 23:21 test.txt
为文件设置权限
[root@host ~]# ll
-rw-r--r--. 1 root root 0 3月 31 23:21 test.txt
[root@host ~]# chmod ug=rw test.txt
[root@host ~]# ll
-rw-rw-r--. 1 root root 0 3月 31 23:21 test.txt
[root@host ~]# chmod o= test.txt
[root@host ~]# ll
-rw-rw----. 1 root root 0 3月 31 23:21 test.txt
为指定目录和其子目录修改权限
[root@host ~]# chmod -R 777 aa
[root@host ~]# ll -R aa
aa:
总用量 0
drwxrwxrwx. 3 root root 16 3月 31 23:29 bb
aa/bb:
总用量 0
drwxrwxrwx. 2 root root 21 3月 31 23:29 cc
aa/bb/cc:
总用量 0
-rwxrwxrwx. 1 root root 0 3月 31 23:29 abc.txt
3.chown——设置文件和目录的归属
基本的命令格式
chnown 属主 文件或目录
chnown :属组 文件或目录
chnown 属主:属组 文件或目录
注意:若属主和属组修改的值为同一个,可以用 chown 属主. 文件或目录
这条命令
常用选项的参数以及含义
选项 | 作用 |
---|---|
-R | 递归修改指定目录下所有文件、子项的权限 |
基本使用方式
修改文件的属主
[root@host ~]# chown zhangsan test.txt
[root@host ~]# ll
-rw-rw----. 1 zhangsan root 0 3月 31 23:21 test.txt
修改文件的属组
[root@host ~]# chown :zhangsan test.txt
[root@host ~]# ll
-rw-rw----. 1 zhangsan zhangsan 0 3月 31 23:21 test.txt
或者使用另一个方式
[root@host ~]# chgrp lisi test.txt
[root@host ~]# ll
-rw-rw----. 1 zhangsan lisi 0 3月 31 23:21 test.txt
为指定目录和其子目录修改文件的归属
[root@host ~]# chown -R zhangsan. aa
[root@host ~]# ll -R aa
aa:
总用量 0
drwxrwxrwx. 3 zhangsan zhangsan 16 3月 31 23:29 bb
aa/bb:
总用量 0
drwxrwxrwx. 2 zhangsan zhangsan 21 3月 31 23:29 cc
aa/bb/cc:
总用量 0
-rwxrwxrwx. 1 zhangsan zhangsan 0 3月 31 23:29 abc.txt
4.umask——设置目录和文件的默认权限
umask作用
umask指定目前用户在新建文件或目录时的权限默认值
umask的命令格式
umask nnn
注意:普通文件默认设置权限为6(rw);目录的最大默认权限为7(rwx)。umask默认值为022.
权限默认值的计算
新建的文件或者目录的权限为默认最大权限减去umake默认设置的值。
例如
[root@host opt]# touch 1.txt
[root@host opt]# mkdir abc
[root@host opt]# ll
-rw-r--r--. 1 root root 0 3月 31 23:59 1.txt
drwxr-xr-x. 2 root root 6 3月 31 23:59 abc
1.txt
文件的默认权限值是644。
其默认权限值644=文件默认设置最大权限6-umake默认值022
abc
目录的默认权限值是755。
其默认权限值755=目录默认设置最大权限7-umake默认值022