系统管理#### 原理
- shutdown 命令
基本语法:
shutdown [-t seconds] [-rkhncfF] time [message]
- -t seconds 设定在 x 秒后自动关机
- -k 关机时发出警告给所有使用者
- -r 关机后重新开机
- -h 关机
- -c 取消关机动作
- time 设定关机时间
- message 传送给所有使用者的警告信息
shutdown -h now
# 立刻关机
- adduser 命令
adduser 用于添加用户或者更新预设的使用者资料
与useradd指定相近,使用该命令必须为系统管理员
(root)权限能使用
adduser xxxx
添加xxxx用户
userdel xxxx
删除xxxx用户
实例:
添加用户: admin
useradd admin
# 创建成功之后会提示输入新的密码
文件管理
-ls命令参数
基本语法: ls [选项] [目录名]
列出目录下的文件 ls
列出目录下文件的详细信息 ls -l
列出目录下所有文件的详细信息 ls -alh
列出目录下隐藏文件 ls -a
列出目录下文件权限,所有者,大小等信息 ls -l
- pwd 显示当前目录
- mv 移动文件/修改文件名
格式:
mv [options] …/filename1 …/filename2
参数:
-f : force强制的意思,如果目标文件已存在,不会询问则直接覆盖
-i: 若目标文件已经存在,提示是否覆盖
移动文件
实例:
如果把home下的test文件移动到var/www目录下
mv /home/test /var/www/test
若要更改文件名称
mkdir ./test ./test1
#把当前目录下test文件更改为test1
-cp命令
cp命令用来拷贝文件非常实用,相当于Windows下的CO[Y和XCOPY命令
命令参数如下:
cp [选项] [源文件路径] [目标文件路径]
-a 将源文件目录下文件拷贝到目标路径下
cp -a file1 file2
-i 将源文件复制并该名称
cp -i file1 file2
或者
cp file1 file2
-l 不复制文件,只生成链接文件
-r/R: 递归处理; 将指定目录下的所有文件与子目录一并处理
cp -r/R file1 file2
-v: 详细显示操作文件的过程
Linux cp命令参数 详细资料见:
参考资料(1)
参考资料(2)
-mkdir 创建文件
语法:
mkdir (选项) (参数)
选项:
–version: 显示版本信息
-Z: 设置安全上下文,当使用SElinux时有效
-m:<目标属性>或者–mode<目标属性> 设置目录的权限
-p:或者–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
指定创建目录列表,多个目录之间使用空格隔开;否则语法错误
实例:
如果在home下创建目录 test
,并且只有文件主有rwx权限,其他人无权访问
mkdir -m 700 /home/test
-rm命令
rm可以删除一个目录或者多个文件或者多个目录
语法:
rm (选项) (参数)
选项:
-i: 删除指定文件或者目录 之前先询问用户是否删除
用户和用户组管理
用户管理
- 用户账号的添加,修改和删除
- 用户口令的管理
- 用户组的管理
-useradd linux系统用户账号管理
添加用户使用useradd命令 如下:
useradd 选项 用户名
useradd-m -u "UID" -g "初始组" -G "附加组" -s "登录的shell" 用户
选项:
- -c comment 指定一段注释行描述
- -d 目录 指定用户主目录,如果此目录不在,则同时使用-m选项可以创建主目录
- -g 用户组 指定用户所属的用户组
- -G 用户组,指定用户所属的附加组
- -s shell 文件,指定用户登录的shell
- -u 用户号,指定用户的用户号
-userdel删除账号
如果一个用户的帐号不再使用可以从系统中删除
userdel <选项> <用户名>
常用的选项 -r 是要把用户的主目录一起删除
userdel -r <用户名>
-usermod修改账号
修改用户的用户号,主目录,用户组等
使用usermod命令
usermod <选项> <用户名>
- -c <备注> : 修改用户账号的备注文字
- -d <登入目录> 修改用户登录时的目录
- -e <有效日期> 修改账号的有效期限
- -f <缓冲天数> 修改在密码过期后的多少天即关闭该账号
- -g <群组> 修改用户所属的群组
- -G <群组> 修改用户所属的附加群组
- -l <账号名称> 修改用户账号名称
- -L <锁定用户密码> 使密码无效
- -s 修改用户登入后所使用的shell
- -u 四修改用户ID
- -U: 解除密码锁定
锁定账号admin
usermod -L admin
解除admin账号
usermod -U admin
-passwd 用户口令管理
passwd 用来修改用户的口令,
passwd <选项> <用户名>
- -l 锁定口令 即锁定账号
- -u 口令解锁
- -d 使账号无口令
- -f 强迫用户下次登陆时修改口令
如果更改当前登录的用户的口令
passwd # 可以直接修改当前用户口令
用户组管理
-groupadd 添加新用户到用户组
用户组所处的文件路径在 /etc/group下,增加新的用户组使用 groupadd 命令 格式如下:
groupadd <选项> <用户组>
-g GID 指定新用户组的组标识号(GID)
-o 一般与-g使用,表示新用户组的GID可以与系统已有用户组的GID相同
-groupel 删除已有的用户组
格式:
groupdel <用户组>
实例: 删除用户组group1
groupdel group1
-groupmod 修改用户都的属性
groupmod <选项> <用户组>
常用的选项
- -g GID 为用户组指定新的组标识号
- -o 与-g 同时使用 用户组的新GID可以与系统已有用户组的GID相同
- -n 新用户组 将用户组的名字改为新名字
详细的用户组相关文章 见:
参考链接
文件权限配置
-chattr 命令
# 用于改变文件属性
格式:
chattr [-RV] [-v<版本编号>] [+/-/=<属性>] [文件或目录..]
八种模式如下:
1. a: 让文件或者目录仅供附加用途
2. b: 不更新文件或目录的最后存取时间
3. c: 将文件或者目录压缩后存放
4. d: 将文件或者目录排除在倾倒操作之外
5. i: 不得任意更动文件或者目录
6. s: 保密性删除文件或者目录
7. S: 及时更新文件或者目录
8. u: 预防意外删除
参数
-R: 递归处理,将指定目录下的所有文件及子目录一并处理
-v: <版本编号> 设置文件或者目录版本
-V: 显示指令执行过程
+<属性>: 开启文件或者目录的该项属性
-<属性>: 关闭文件或者目录的该项属性
=<属性>: 指定文件或者目录的该项属性
实例:
防止xxx文件被修改
chattr +i xxx文件
设置文件可以被修改
chattr -i xxx文件
- 文件的基本属性
linux系统是一个多用户系统,不同的用户的用户权限也就不相同,为了保证安全性,linux系统
对用户所控制的权限进行了设置
在linux中可以使用 " ls -l "查看xxx文件或者文件夹下的文件的权限
- 文件属主和属组
查看权限时,Linux中的常见的第一个字符代表这个文件是目录或者是文件,链接等
当第一个字母为 d 时,则为目录文件夹
当第一个字母为 - 时, 则为文件
当第一个字母为 l 时,则为链接文件
接下来就是读写执行了
r [read] 对文件的读的控制
w [write] 对文件的写入的权限
x [execute] 代表可执行
这个三个权限的位置是不会变,如果没有权限,则会出现[-]代替‘
从左数0-9代表着各个属性
第0位 确定文件类型
第1-3 位 确定文件的所有者拥有该文件权限的
第4-6 位确定属组的用户拥有的权限
第7-9 位确定其他用户拥有的权限
1,4,7 代表读权限
2,5,8 代表写权限
3,6,9 代表执行权限
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
0 | 1 2 3 | 4 5 6 | 7 8 9 |
d | rwx | r-x | r-x |
目录文件 | 读 写 执行 | 读 写 执行 | 读 写 执行 |
- chgrp 更改文件属组
chgrp -R [属组名] 【文件名】
-R : 递归更改文件属组,如果更改目录文件使用-R参数,则该目录下的所有文件属组都会被更改
- chown 更改文件属主,也可以同时更改文件属组
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
####### - chmod 更改文件的9个属性
r: 4
w : 2
x : 1
一下三个身份的权限分数是要累加的,例如当前权限位[-rwxrwx—]分数则是
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others = — = 0+0+0 = 0
所以要变更的权限为 770
如果改变目录文件以内的所有文件使用-R 参数进行递归设置
chmod -R root:root xxx文件 # 更改属主属组权限
chmod -R rwx(级别) xxx文件 # 更改目录文件以内的所有文件权限
使用符号更改文件权限
- user
- group
- others
可以使用u,g,o 代表三个身份的权限
a 则代表all 即全部身份,读写执行权限为r,w,x
chmod | u g o a | + - = | r w x | 文件或者目录 |
---|
假设设定test文件为 -rwx-rx-r-- 可以使用 chmod u=rwx group=rx others=r
文件名来设定
# touch test 创建test文件
# ls -al test 查看默认文件权限
-rw-r--r--. 1 root root 0 3月 21 23:10 test
# chmod u=rwx,g=rx,o=r test # 创建用户可有rwx权限,用户组只有读和执行权限,其他用户只有读的权限
查找命令、
文件查找命令分为五个
- find
- locate
- wheris
- whice
- type
find的基本语法
find <指定目录> <指定条件> <指定动作>
-
<指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
-
<指定条件>: 所要搜索的文件的特征。
-
<指定动作>: 对搜索结果进行特定的处理。
若没有指定任何参数,则只查询该路径下的xxx文件
实例:
查询该目录下的vnc文件
find -name xxx文件
若要查找根目录下的xxx文件
find / -name xxx文件
若要指定搜索/etc下的xxx文件
find /etc -name xxx文件
locate 工具使用
locate 命令使用
locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
语法:
locate [参数] [样式]
参数:
参考链接:文档博客园
实例
搜索/etc/下以sh开头的文件名的文件
locate /etc/sh
whereis 工具使用
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis命令的使用实例:
which 命令
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
实例:
which grep
Type 命令
type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令
实例 :
查找grep的文件路径
type grep
加上-p参数 相当于which命令