1、用户和用户组管理
1.1 用户管理常用命令
-
Linux用户分类
用户的角色是通过UID来识别,用户的UID全局唯一。
-
root用户(超级用户)
系统唯一,是真实的。该用户可以登录系统,可以操作系统任何文件和命令,拥有最高权限。
-
虚拟用户
被称为伪用户或假用户,与真实用户区分开来。这类用户不具有登录系统的能力,却是系统运行不可缺少的用户,如bin、daemon、adm等。
虚拟用户是系统自身拥有的。
-
普通真实用户
该类用户能登录系统,但权限受到限制,由系统管理员自行添加。
-
-
用户账号添加命令——useradd或adduser
-
语法
useradd [option] [username]
-
option
选项 意义 -g 用于添加用户账号时指定该用户的私有组。如不指定-g参数,useradd命令将自动建立与用户账号同名的组作为该账号的私有组。 -G 用于添加附属组 -D 用于显示或设置useradd命令所使用的默认值 -d 指定用户主目录,如果此目录不存在,则同时使用-m选项来创建主目录 -m 使用者目录若不存在,则自动建立 -u UID 指定用户的用户号,如果同时有-o选线,则可以重复使用其他用户的标识号。
注意,ID值不能为负值,预设为最小不得小于99而逐次增加。
0~99传统上保留给系统账号使用。
-
-
作用
- 在/etc/passwd文件中添加一行记录
- 在/home目录下创建新用户的主目录,并将/etc/skel目录中的文件复制到该目录中
-
说明
- 新建的用户暂时无法登录,需要为该用户设置口令后才能登录
- 用户的UID和GID是useradd自动选取的,即将/etc/passwd文件中的UID加1,将/etc/group文件中的GID加1
- 使用useradd或adduser命令增加新用户时,系统将为用户创建一个与用户名相同的组,称为私有组
-
-
修改用户账号——usermod
-
语法
usermod [option] [username]
-
option为useradd命令选项
选项 意义 -d [directory] 修改用户登入时的目录 -e [days] 修改账号的有效期限,days表示天数 -g [group] 修改用户所属的群组 -l [login_name] 变更用户登录时的名称为login_name -p [password] 修改用户密码 -s [shell] 指定用户登录的shell,如果不设置,则选用系统预设的shell -
username是需要修改的用户名
-
-
作用
usermod命令可用来修改用户账号的各种属性,包括用户主目录、私有组、登录shell等内容。
-
说明
- 使用usermod命令修改用户密码,其显示在文件/etc/shadow中的密码是明密码,应该用passwd命令修改密码
- usermod不允许改变已登录用户的用户账号名称,当用户修改UID时,也必须确认这个用户没有在电脑上执行任何程序
-
-
删除用户账号命令——userdel
-
语法
userdel [option] [username]
-
说明
- option只有一个可选项
-r
- 如果在userdel后加上
-r
选项,则在删除用户的同时也一并删除存储在/home目录下的该用户目录和文件
- option只有一个可选项
-
-
用户口令管理命令——passwd
-
语法
passwd [option] [username]
-
[username]为用户名
-
[option]为passwd命令选项
选项 意义 -l 锁定用户口令,即禁止使用该用户账号 -u 口令解锁 -d 关闭使用者的密码确认功能,使用者在登陆时可以不用输入密码,只有具备root用户的使用者才能使用 -f 强迫用户下次登录时修改密码 -l [login_name] 变更用户登录时的名称为login_name -s 显示指定使用者的密码认证种类,同样只有具备root权限的用户才可使用
-
-
说明
- 凡是在文件
/etc/shadow
的用户名含“!!”时,该用户账号不可使用,而为加密信息时是可以使用的
- 凡是在文件
-
1.2 用户组管理常用命令
-
定义
用户组是具有相同特征的用户的集合体,用户和用户组的关系是多对多的,一个用户可以属于多个用户组,一个用户组可以包含多个用户。
-
用户组添加命令——groupadd
-
作用
groupadd可指定用户组名称来建立新的用户组
-
语法
groupadd [option] [groupname]
-
option为命令选项
选项 意义 -g GID 除非使用-o参数,否则GID值必须是唯一且数值不可为负,预设值以/etc/login.defs为准 -o GID 运行GID不唯一 -r 加入组GID号,且其GID号低于499系统账号 -f 新增一个已经存在的用户组账号,系统会出现错误信息,然后结束 -
groupname是将要创建的用户组名
-
-
说明
- 在调用groupadd命令时不设置GID号,新组的组标识GID是在当前最大组标识的基础上加1
-
-
用户组修改命令——groupmod
-
作用
groupmod可指定用户组名称来修改新的用户组号或用户组名称
-
语法
groupmod [option] [groupname]
-
option为命令选项
选项 意义 -g GID 用户指定新的GID -o GID 重复使用GID -n 为群组改名 -
groupname为用户组名
-
-
-
用户组删除命令——groupdel
-
作用
groupdel可指定用户组名称来删除已有的用户组
-
语法
groupdel [groupname]
-
说明
- 删除组时,如果该用户组中包含某些用户,则必须先删除这些用户,然后才能删除该用户组
-
2、文件和目录操作
-
文件
-
定义
文件是Linux用来存储信息的基本结构,它是存储在某种介质(如磁盘、光盘和磁带等)上的一组信息的集合
-
-
说明
- Linux文件均为无结构的字符流形式
- 文件名是文件的标识,它由字母、数字、下划线和圆点组成的字符串构成
- Linux要求文件名的长度限制在255个字符以内
- 为了便于识别和管理,用户可以把扩展名作为文件名的一部分,文件名与扩展名之间用圆点分开,扩展名对于文件分类有用
-
目录
Linux系统以文件目录(树形结构)的方式来组织和管理系统中的所有文件。
整个文件系统有一个“根”(root),然后在根上分“杈“(directory),任何一个分杈上都可以再分杈,杈上也可以长出”叶子“(file)。
-
路径
路径是指从树形目录中的某个目录层次到某个文件的一条道路。
- 路径的主要构成是目录名称,中间用"/"符号分开。
- 路径分为相对路径和绝对路径。
-
文件操作常用命令
- 文件清单命令:ls
- 文件复制命令:cp
- 文件移动命令:mv
- 文件删除命令:rm
-
目录操作常用命令
- 创建目录命令:mkdir
- 删除目录命令:rmdir
- rmdir仅仅能删除父目录中只包含空子目录的情况,如果目录中存在文件,无法删除该目录
- 目录切换命令:cd
3 文件和目录权限管理
-
说明
- 文件或目录的访问权限分为只读、只写和可执行三种
- 有三种不同类型的用户可对文件或目录进行访问:文件所有者、同组用户、其他用户
- 每一个文件或目录的访问权限都有三组,每组用三位表示
- 文件属主的读、写和执行权限
- 与属主同组的用户的读、写和执行权限
- 系统中其他用户的读、写和执行权限
- 权限字段r代表只读,w代表写,x代表可执行
-
更改文件(目录)权限命令——chmod
-
作用
chmod命令用于更改文件或目录的访问权限。
-
语法(两种用法)
- 一种是包含字母和操作符表达式的文字设定法
- 一种是包含数字的数字设定法
chmod [userType] [signal] [type] [filename]
用户类型[userType] 数学符号(signal) 文件类型(type) u 表示用户(user),即文件或目录的所有者 + 添加某个权限 r 可读 g 表示同组(group),即与文件属主同组的用户 - 取消某个全新啊 w 可写 o 表示其他(others)用户 = 赋予给定权限并取消其他所有权限 x 可执行 a 表示所有(all)用户,它是系统默认值
-
数字表示属性的含义
0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限
-
-
更改文件(目录)属主命令——chown
-
作用
chown命令可以改变文件或目录的属主
-
语法
chown [option] [owner] [filename]
-
option为chown命令选项
-
owner为改变后的用户属主
-
filename为需要改变属主的文件或目录
-
-
说明
- 当用户要改变一个文件的属主时,所使用的用户除了是root用户外,还可以是目标属主的成员
-
-
特殊权限命令——SUID和SGID
有时需要没有被授权的用户完成某项任务
-
SUID
-
作用
当一个设置了SUID位的可执行文件被执行时,该文件以所有者的身份运行
-
说明
无论谁来执行这个文件,它都拥有文件所有者的特权,可以任意使用该文件拥有者能使用的全部系统资源;
如果所有者是root,那么执行人就有超级用户的特权了
-
设置和除去SUID
chmod u+s [filename] #设置[filename]的SUID位 chmod u-x [filename] #去除[filename]的SUID位
-
-
SGID
-
作用
当一个设置了SGID位的可执行文件被执行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源
-
说明
若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p选项,才能保留原来所属的群组设置
-
设置和除去SGID
chmod g+s [filename] #设置[filename]的SGID位 chmod g-s [filename] #去除[filename]的SGID位
-
-
说明
SUID和SGID占据了ls -l清单中x位相同的空间;
如果开始设置了可执行权限x位,则其相应的位置用小写的s表示;
如果没有设置可执行权限x位,则其相应位置表示为大写的S。
-
-
查找文件命令——find
-
作用
find命令能帮助用户在使用、管理Linux的日常事务时方便地查找出用户所需要的文件
-
语法
find [路径] [选项] [操作]
-
路径
路径是find命令所查找的目录路径
-
选项
选项用于指定查找条件
选项 意义 name 根据文件名查找文件 perm 根据文件权限查找文件 prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略 user 根据文件属主查找文件 group 根据文件所属的用户组查找文件 mtime -n +n 根据文件的更改时间查找文件,-n表示文件更改时间距今在n天之内,+n表示文件更改时间距今在n天前 nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在 nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在 -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件 type 查找某一类型的文件,type后跟的子选项及其意义如下:
b:块设备文件
d:目录
c:字符设备文件
p:管道文件
l:符号链接文件
f:普通文件size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计 depth 在查找文件时,首先查找当前目录中的文件,然后在其子目录中查找 -
操作
操作用于指定结果的输出方式
操作名称 意义 print 将匹配的文件输出到标准输出 exec 对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;
注意,{ }和;之间的空格ok 和-exec的作用相同,只不过以一种更安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行 -
示例
# 查找当前目录下文件名以t开头,且文件属主具有读、写、执行权限的文件 find . -name 't*' -perm 744 -print # 查找更改时间据今90天内的文件 find . -mtime -90 -print # 其他 find -/etc -type f -name "rc*" -exec ls -l {} ;
-
-