用户和用户管理
用户管理常用命令
Linux系统用户的角色是通过UID来标识的,用户的UID是全局唯一的。Linux用户分为三类:
- root
超级用户,具有最高权限。
-
虚拟用户
这类用户称为假用户或伪用户,与真实用户分开,这类用户不具有登陆系统的能力,但是却是不可缺少的,例如bin,deamon,ftp,mail等。
- 普通真实用户
这类用户可以登陆系统,可以操作其有权限的目录或者文件
Linux管理用户的常用命令有:
- 添加用户–useradd或adduser
useradd [option] username
执行该命令,将在系统中做以下操作:
- 在/etc/passwd 文件中增加一行记录
- 在/home 目录下创建用户的主目录,并将/etc/skel目录中的文件复制到该目录
useradd 选项
选项 |
意义 |
-g [grpname] |
指定用户的私有组,如果未指定用户组名称,则创建与账户同名的用户组 |
-G [grpname] |
用于添加附属组 |
-D |
用户设置或显示useradd命令所使用的默认值 |
-m |
目录不存在则自动建立 |
-d dir |
指定账户主目录 |
-u UID |
指定UID,>=99,1~99为系统使用。同时有-o选项,则可以使用其他用户的标识号
|
通过/etc/passwd查看用户信息
通过/etc/shadow查看用户密码
- 修改用户账号–usermod
usermod [option] username
usermode选项
选项 |
意义 |
-g [grpname] |
指定用户的私有组,如果未指定用户组名称,则创建与账户同名的用户组 |
-d dir |
指定账户主目录 |
-e [days] |
修改用户的有效期 |
-l loginname |
变更用户登陆时的名称 |
-p password |
修改用户密码 |
-s [shell] |
指定用户登陆shell,未指定则选用系统预设的 |
最好不要用usermod修改用户密码,应为在/etc/shadow中显示的是明文。请使用passwd命令修改密码
选项 |
意义 |
-l |
锁定用户账户,禁止用户登陆 |
-u |
口令解锁 |
-d |
关闭密码确认功能,登陆时可以不使用密码,只有root权限用户才可以 |
-f |
强迫下次修改密码 |
-l loginname |
变更用户登陆时的名称 |
-s |
显示指定使用者的密码认证种类,同样只有root权限用户才可以使用 |
凡是在/etc/shadow中密码显示!!的,账户不可用
用户组管理常用命令
- 添加用户组
groupadd [option] groupname
- 修改用户组
groupmod [option] groupname
- 删除用户组
groupdel groupname
如果用户组包含用户,则先删除用户,再删除用户组。
文件和目录操作
文件常用操作命令
- 文件清单命令–ls
ls [option] [file or directory]
[file or directory]参数,当是目录时,列出子目录和文件。当时文件时,列出文件详细信息。当此参数不设置时,列出当前目录信息。默认按字母排序。
- 文件复制命令–cp
cp [option] source destination
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
source:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
destination:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
选项 |
意义 |
-a |
此参数的效果和同时指定”-dpR”参数相同; |
-d |
当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录; |
-f |
强行复制文件或目录,不论目标文件或目录是否已存在; |
-i |
覆盖既有文件之前先询问用户; |
-l |
对源文件建立硬连接,而非复制文件; |
-p |
保留源文件或目录的属性; |
-R/r |
递归处理,将指定目录下的所有文件与子目录一并处理; |
-s |
对源文件建立符号连接,而非复制文件; |
-u |
使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; |
-S |
在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; |
-b |
覆盖已存在的文件目标前将目标文件备份; |
-v |
详细显示命令执行的操作。 |
- 文件移动命令–mv
mv [option] source destination
选项 |
意义 |
-b |
若需覆盖文件,则覆盖前先行备份。 |
-f |
force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; |
-i |
若目标文件 (destination) 已经存在时,就会询问是否覆盖! |
-u |
若目标文件已经存在,且 source 比较新,才会更新(update) |
-t |
即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。 |
- 文件删除命令–rm
rm [option] files
选项 |
意义 |
-d |
直接把欲删除的目录的硬连接数据删除成0,删除该目录; |
-f |
强制删除文件或目录; |
-i |
删除已有文件或目录之前先询问用户; |
-r或-R |
递归处理,将指定目录下的所有文件与子目录一并处理; –preserve-root:不对根目录进行递归操作; |
-v |
显示指令的详细执行过程。 |
目录常用操作命令
- 创建目录命令–mkdir
mkdir [option] dir
选项 |
意义 |
-Z |
设置安全上下文,当使用SELinux时有效; |
-m 目标属性 |
–mode<目标属性>建立目录的同时设置目录的权限; |
-p |
或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录; |
–version |
显示版本信息。 |
rm [option] dir
选项 |
意义 |
-p或–parents |
删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除; |
–ignore-fail-on-non-empty |
此选项使rmdir命令忽略由于删除非空目录时导致的错误信息; |
-v或-verboes |
显示命令的详细执行过程; –help:显示命令的帮助信息; |
–version |
显示命令的版本信息。 |
- 目录切换命令–cd
cd [option] dir
选项 |
意义 |
-p |
如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录 |
-L |
如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。 |
- |
当仅实用”-“一个选项时,当前工作目录将被切换到环境变量”OLDPWD”所表示的目录。 |
- pwd
pwd命令以绝对路径的方式显示用户当前工作目录
- tree
- popd
- pushd
- dirs
-
文件和目录权限命令
文件和目录的权限分为三种:读(r)、写(w)、执行(x).
或者是位域表示:读(4)、写(2)、执行(1)
- 更改权限命令–chmod
chmod [usertype] [signal] [type] file
usertype:
选项 |
意义 |
a |
all |
u |
user |
g |
group |
o |
owner |
signal:
选项 |
意义 |
+ |
添加权限 |
- |
取消权限 |
= |
仅赋值某个权限 |
type:
r、w、x、s、t
- 更改属主命令–chown
- 特殊权限命令–SUID,SGID
- SUID
当设置了SUID位的可执行文件被执行时,该文件以所有者的身份运行
- SGID
当设置了SGID位的可执行文件被执行时,该文件以所属组的身份运行。若一个目录设置了SGID,则所有被复制到这个目录下的文件都具有SGID属性,除非在复制文件时加-p参数。
SUID和SGID占居了ls -l清单中x位,如果设置了x,则显示s,未设置显示S。
t只作用目录,表示只有属主可以修改、删除目录
查找文件命令–find
find [path] [option] [operate]
选项 |
意义 |
-name |
按照文件名查找文件。支持?*[] |
-iname |
按照文件名查找文件,但不区分大小写 |
-perm |
按照文件权限来查找文件。 |
-prune |
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。 |
-user |
按照文件属主来查找文件。 |
-uid n |
根据uid 来查找用户 |
-gid n |
根据 gid来查找用户 |
-group |
按照文件所属的组来查找文件。 |
-mtime -n +n |
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。 |
-nogroup |
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。 |
-nouser |
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。 |
-newer file1 ! file2 |
查找更改时间比文件file1新但比文件file2旧的文件。 |
-type |
查找某一类型的文件.b - 块设备文件。d - 目录。c - 字符设备文件。p - 管道文件。l - 符号链接文件。f - 普通文件。 |
-size n:[c] |
查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。2M +2M -2M 等于、大于、小于2M |
-fstype: |
查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。 |
-mount: |
在查找文件时不跨越文件系统mount点。 |
-follow: |
如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。 |
-cpio: |
对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。 |
-amin n |
查找系统中最后N分钟访问的文件 |
-atime n |
查找系统中最后n*24小时访问的文件 |
-cmin n |
查找系统中最后N分钟被改变文件状态的文件 |
-ctime n |
查找系统中最后n*24小时被改变文件状态的文件 |
-mmin n |
查找系统中最后N分钟被改变文件数据的文件 |
-mtime n |
查找系统中最后n*24小时被改变文件数据的文件 |
-a -o -not |
逻辑表达式 |
选项 |
意义 |
-print: |
find命令将匹配的文件输出到标准输出。 |
-exec: |
find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } \;,注意{ }和\;之间的空格。 |
-ok: |
和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 |
文本编辑器
vim编辑器
gedit编辑器