linux基础命令总结

Linux 基础知识(命令、用户)

一、基本命令、简单操作

1.ls

语法:ls [选项] [目录或是文件]\ 
对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及 所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就 显示当前目录的信息。

命令中各选项的含义如下:

- a 显示指定目录下所有子目录与文件,包括隐藏文件。

- A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出"."和 ".."。

- b 对文件名中的不可显示字符用八进制逃逸字符显示。

- c 按文件的修改时间排序。

- C 分成多列显示各项。

- d 如果参数是目录,只显示其名称而不显示其下的各文件。往往与l选项一起使 用,以得到目 录的详细信息。

- f 不排序。该选项将使lts选项失效,并使aU选项有效。

- F 在目录名后面标记"/",可执行文件后面标记"*",符号链接后面标记 "@",管道(或 FIFO)后面标记"|",socket文件后面标记"="。

- i 在输出的第一列显示文件的i节点号。

- l 以长格式来显示文件的详细信息。这个选项最常用,也可简化为ll\ 
每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大

小 建立或最近修改的时间 名字\ 
对于符号链接文件,显示的文件名之后有"---〉"和引用文件路径名。\ 
对于设备文件,其"文件大小"字段显示主、次设备号,而不是文件大小。\ 
目录中的总块数显示在长格式列表的开头,其中包含间接块。

- L 若指定的名称为一个符号链接文件,则显示链接所指向的文件。

- m 输出按字符流格式,文件跨页显示,以逗号分开。

- n 输出格式与l选项相同,只不过在输出中文件属主和属组是用相应的UID号和 GID号来表示, 而不是实际的名称。

- o 与l选项相同,只是不显示拥有者信息。

- p 在目录后面加一个"/"。

- q 将文件名中的不可显示字符用"?"代替。

- r 按字母逆序或最早优先的顺序显示输出结果。

- R 递归式地显示指定目录的各个子目录中的文件。

- s 给出每个目录项所用的块数,包括间接块。

- t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。 修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修改时间。

- u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间标记修改为最 后一次访问的时间。

- x 按行显示出各排序项的信息。

2.cd 改变工作目录

语法: cd [directory]该命令将当前目录改变至directory所指定的目录。若没有指定 directory, 则回到用户的主目录。

cd .. 回到上级目录

3.cp 目录或文件的拷贝

语法:cp [选项] 源文件或目录 目标文件或目录\ 
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。 
-a 拷贝目录 
-d拷贝时保留链接

-f 删除已经存在的目标文件而不提示

-i 在覆盖目标文件之前将给出提示要求用户确认

-p 复制源文件,且将修改时间和访问权限也复制到新文件中 -r 递归复制目录下所有的子目录和文件

-l 不作拷贝只是链接文件

4.mv 移动或重命名

语法:mv [选项] 源文件或目录 目标文件或目录\ 
说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或 将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名。在跨文件系统 移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重 写, 要求用户回答y或n,这样可以避免误覆盖文件。

- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将 不再起作用。\ 
如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户用 mv命令破坏另一个文件,使用mv命令移动文件时,最好使用i选项。

5.rm ,rmdir删除命令\ 
删除文件或目录及目录下的子目录。对于链接文件,只是断开了链接,源文件保持不变

- f 忽略不存在的文件,从不给出提示。

- r 指示rm将参数中列出的全部目录和子目录均递归地删除。

- i 进行交互式删除。\ 
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。为了防止这种情况的发生,可以 使用-i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西, 文件则不会删除。

rmdir删除空目录

语法:rmdir [选项] dir-name

- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删 除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

6.touch ,mkdir

touch 新建文件touch file{1,2}批量新建文件file1,file2

mkdir 新建目录

- m 对新建目录设置存取权限。也可以用chmod命令设置。

- p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建 立好那些尚不存在的目录,即一次可以建立多个目录。

7.pwd命令\ 
显示当前工作目录的绝对路径

8.sort 命令\ 
对指定文件中的所有进行排序,并将结果显示在标准输出上。如不指定输入文件或使用"- ", 则表示排序内容来自标准输入。

改变缺省设置的选项主要有:

- m 若给定文件已排好序,合并文件。

- c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退 出。

- u 对排序后认为相同的行只留其中一行。

- o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort 先将该文件的内容写入一个临时文件,然后再排序和写输出结果。\ 
改变缺省排序规则的选项主要有:

- d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。

- f 将小写字母与大写字母同等对待。 
- I 忽略非打印字符。

- M 作为月份比较:"JAN"\<"FEB"

- r 按逆序输出排序结果。

- b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。 - t separator 指定字符separator作为字段分隔符。

9.uniq

剔除文件中的重复行,保留每条记录的唯一样本

- c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。 - d 只显示重复行。

- u 只显示文件中不重复的各行。

10.su 用户切换命令

su :切换到超户

su - username ;切换到username

11.sync 命令

sync命令是在关闭Linux系统前使用的。\ 
sync命令是强制把内存中的数据写回硬盘,以免数据的丢失。用户可以在需要的时候使用此命\ 
令。内核把数据保持在内存里以避免磁盘读写(磁盘相对来说比较慢)这能改进性能,但如果计 算机跨掉,结果就可能是数据丢失,或者文件系统损坏. sync 保证任把何在内存里的东西写入 磁盘.

sync 应该在处理器异常停止前调。

12.free\ 
查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存 和被核心使用的缓冲区。

-b 以字节为单位显示。

-k 以K字节为单位显示。

-m 以兆字节为单位显示。

13.df

df命令可显示所有文件系统对i节点和磁盘块的使用情况。

a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。 -k 以k字节为单位显示。

-i 显示i节点信息,而不是磁盘块。

-t 显示各指定类型的文件系统的磁盘空间使用情况。

-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。

-T 显示文件系统类型。

14.du

统计目录(或文件)所占磁盘空间的大小。du -sh 查看当期目录下的文件夹大小

-s 对每个Names参数只给出占用的数据块总数。

-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指 定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。

-b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。

-k 以1024字节为单位列出磁盘空间使用情况。

-c 最后再加上一个总计(系统缺省设置)。

-l 计算所有的文件大小,对硬链接文件,则计算多次。

-x 跳过在不同文件系统上的目录不予统计

15.dd\ 
把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。先用dd命令 把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上。需要注意的\ 
是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。\ 
语法:dd [选项]

if =输入文件(或设备名称)。

of =输出文件(或设备名称)

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。 count=blocks 只拷贝输入的blocks块。

16.date,cal

date命令显示和设置系统日期和时间。 date +%Y-%m-%d 显示格式XXXX-XX-XX -d datestr, --date datestr 显示由datestr描述的日期

-s datestr, --set datestr 设置datestr 描述的日期

-u, --universal 显示或设置通用时间

cal

显示某年某月的日历。

- j 显示出给定月中的每一天是一年中的第几天(从1月1日算起)。 - y 显示出整年的日历。

cal XX XXXX显示某年某月的日历

17.

cat /etc/redhat-release 查看系统版本信息\ 
cat /proc/version 查看系统内核版本等信息\ 
uname -a 查看系统内核等信息

cat /proc/cpuinfo 查看CPU信息

cat /proc/meminfo 查看内存信息

cat /proc/swaps 查看交换空间信息

getconf LONG_BIT 查看CPU是32位还是64位\ 
dmidecode|more 如何查看BIOS信息等。

grep MemTotal /proc/meminfo 查看物理内存信息\ 
grep SwapTotal /proc/meminfo 查看交换空间的大小 cat /etc/passwd 查看账户信息

cat /etc/shadow 查看密码信息

18.更改主机名

vi /etc/sysconfig/network\ 
将hostname改名,然后重启即可。

19.修改DNS

vi /etc/resolv.conf 或者vi /etc/hosts linux下定期备份数据

# vi /etc/crontab //任务计划\ 
#加入下面内容

10 1 * * * root /etc/root/backupdaily.sh 注释:每天1点10分运行脚本

:wq保存退出。

20.find\ 
在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。\ 
语法:find 起始目录 寻找条件 操作\ 
说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并 对之采取相关的操作。\ 
该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符\ 
and、or、not的含义为:\ 
(1)and:逻辑与,在命令中用"-a"表示,是系统缺省的选项,表示只有当所给的条件都满足 时,寻找条件才算满足。例如:

$ find --name 'tmp' --xtype c -user 'inin'\ 
该命令寻找三个给定条件都满足的所有文件。\ 
(2)or:逻辑或,在命令中用"-o"表示。该运算符表示只要所给的条件中有一个满足时,寻找 条件就算满足。例如:

$ find --name 'tmp' --o --name 'mina*'

该命令查询文件名为'tmp'或是匹配'mina*'的所有文件。\ 
(3)not:逻辑非,在命令中用"!"表示。该运算符表示查找不满足所给条件的文件。例如:

$ find ! --name 'tmp'\ 
该命令查询文件名不是'tmp'的所有文件。

需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对 括号引起误解,在话号前需要加转义字符"\"来去除括号的意义。

例:$ find \(--name 'tmp' --xtype c -user 'inin' \)

(1) 以名称和文件属性查找。

- name '字串' 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。

- lname '字串' 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符

*、?、[ ]。

-gid n 查找属于ID号为n的用户组的所有文件。

-uid n 查找属于ID号为n的用户的所有文件。

-group '字串' 查找属于用户组名为所给字串的所有的文件。

-user '字串' 查找属于用户名为所给字串的所有的文件。

-empty 查找大小为0的目录或文件。

-path '字串' 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。

-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。

-size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。 -type x 查找类型为x的文件,x为下列字符之一:

b 块设备文件 c 字符设备文件

d 目录文件 p 命名管道(FIFO)

f 普通文件 l 符号链接文件(symbolic links)

s socket文件 -xtype x 与-type基本相同,但只查找符号链接文件。

(2)以时间为条件查找

- amin n 查找n分钟以前被访问过的所有文件。

- atime n 查找n天以前被访问过的所有文件。

- cmin n 查找n分钟以前文件状态被修改过的所有文件。

- ctime n 查找n天以前文件状态被修改过的所有文件。

- mmin n 查找n分钟以前文件内容被修改过的所有文件。

- mtime n 查找n天以前文件内容被修改过的所有文件。

(3) 可执行的操作

- exec 命令名称 {} 对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命 令。{}表示命令的参数即为所找到的文件;命令的末尾必须以" \;"结束。

- ok 命令名称 { } 对符合条件的文件执行所给的Linux 命令,与exec不同的是,它会询问用户 是否需要执行该命令。

- ls 详细列出所找到的所有文件。

- fprintf 文件名 将找到的文件名写入指定文件。

- print 在标准输出设备上显示查找出的文件名。

- printf 格式 格式的写法请参考有关C语言的书。\ 
例1:查找当前目录中所有以main开头的文件,并显示这些文件的内容。$ find . - name\ 
'main*' - exec more {} \;

例2:删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。

$ find . \(- name a.out - o - name '*.o'\)\

> - atime +7 - exec rm {} \;

说明如下:\ 
命令中的"."表示当前目录,此时find将从当前目录开始,逐个在其子目录中查找满足后面指定 条件的文件。\(和\)表示括号(),其中的"\"称为转义符。之所以这样写是由于对Shell而 言,(和)另有不同的含义,而不是这里的用于组合条件的用途。"- name a.out"是指要查找 名为a.out的文件;"- name '*.o'"是指要查找所有名字以 .o结尾的文件。这两个- name之 间的- o表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件,find在当前目录及其子 目录下找到这佯的文件之后,再进行判断,看其最后访问时间是否在7天以前(条件-atime +\ 
7),若是,则对该文件执行命令rm(- exec rm{ }\;)。其中{ }代表当前查到的符合条件的文 件名,\;则是语法所要求的。上述命令中第一行的最后一个\是续行符。当命令太长而在一行写 不下时,可输入一个\,之后系统将显示一个>,指示用户继续输入命令。

21.grep

grep --i跳过大小写 grep --v 反向过滤

grep --nx 显示过滤行在内的前n 行和后n行\ 
grep --Ax 显示过滤行在内的后n行

grep -bx显示过滤行在内的前n行

22.sed

sed ' s/a/b/g' file 全文替换

sed 'm,ns/a/b/g' file 指定行数替换

sed '/root/,/ftp/s/a/b/g' file 指定字之间的替换\ 
sed -e 's/a/b/g' --e 's/c/d/g' file 转换多条\ 
注:sed命令只是改变文件的输出内容,不改变原文件的内容

23.

wc --l 统计文件行数 wc --w 统计文件字数 wc -c 统计字符数 diff --u 比较两个文件的不同,显示详细信息

patch --吧打补丁并保存原文件

df 显示磁盘用量 du 计算目录下文件占用磁盘的大小

cat -b 显示文件内容并显示行号

head -n显示文件的指定的前n行内容

tail --n 显示文件后n行 tail --f 监控一个文件

24.Vim 编辑

1、进入insert模式的方法:i I a A o O 退出模式:wq wq! q q!\ 
2、光标移动:数字+上/下 : 向上/下移动指定行数\ 
数字+左/右 : 向左/右移动指定个数的字符\ 
数字+G :移动到指定行\ 
3、替换:%s/目标/替换结果/g 全文替换\ 
1,5s/目标/替换结果/g 1-5行替换

25.命令中的一些技巧:

Ctrl +shift+v 复制光标选中的内容

Ctrl +shift+c 复制光标选中的内容

Ctrl +shift+t 在terminal中打开一个新的table\ 
Ctrl +a 移动光标至行首

Ctrl +e 移动光标至行尾

Ctrl +u 从光标处删除到行首

Ctrl +k 从光标处删除到行尾

26.一些符号的应用

$()或者` ` 用来注释命令

{} 用来选择一些字符或者数字\ 
\ 转译一些特殊符号,比如空格,!,$等等

27.管道符号:

>重定向正确的输出 会覆盖原文件例:find /etc/ -name paaswd >file 2>重定向错误的输出 find /etc/ -name passwd 2>file.er\ 
&>重定向所有输出

>> 追加正确的输入 不会覆盖原文件\ 
错误输出也可通过管道的方法是:在管道符前加2>&!

例:find /etc/ -name passwd 2>&! | wc --l 结果为 16

28.进程管理

Ps -a 显示所有在终端上运的进程

-x 显示在后台运行的进程

-u 显示进程的拥有者

-f 显示进程的详细信息

-o %cpu 显示cpu信息

Pid 进程的pid

Pgrep -U root 显示所有属于root用户的pid

Pid + 进程的名字 显示一条命令的进程

29.禁止、响应ping

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 禁止ping,忽略ICMP包。 # echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all 响应ping\ 
以上两个设置在重启后失效,若添加到/etc/rc.local里,重启后仍然有效

30.文本数据转到数据库中\ 
文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:

(1) name duty 2006-11-23

数据传入命令 load data local infile \"文件名\" into table 表名;

(2)、导出数据库和表

mysqldump --opt news > news.sql(将数据库news中的所有表备份到news.sql文件,news.sql是 一个文本文件,文件名任取。)

mysqldump --opt news author article > author.article.sql(将数据库news中的author表和 article表备份到author.article.sql文件, author.article.sql是一个文本文件,文件名任\ 
取。)

mysqldump --databases db1 db2 > news.sql(将数据库dbl和db2备份到news.sql文件,\ 
news.sql是一个文本文件,文件名任取。)

mysqldump -h host -u user -p pass --databases dbname > file.dump\ 
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中

mysqldump --all-databases > all-databases.sql(将所有数据库备份到all-databases.sql文 件,all-databases.sql是一个文本文件,文件名任取。)

(3)、导入数据

mysql \< all-databases.sql(导入数据库)

mysql -u root -p fukai --force \< dmc010003_db.myisam.sql(强行导入)

mysql>source news.sql;(在mysql命令下执行,可导入表)

二、用户、组、权限

LINUX下的用户分为三类:超级用户,普通用户,伪用户。

1 超级用户:用户名为root,具有一切管理权限,他的UID为0,可以创建多个管理员\ 
的。

2 普通用户:在默认情况下,普通用户的UID是介于500-60000之间的。

3 伪用户:这些用户的存在是为了方便系统管理,满足相应的系统进程对文件属主的要 求。他不能够登录,它的ID值介于1--499之间。

LINUX的组:分为私有组和标准组\ 
私有组:新创建一个用户时,如果没有指定所属组,则系统会为用户创建一个同名的私有组。\ 
标准组:事先创建好的,新创建一个用户时就可以指定他所属的组,它可以容纳多个用户。

配置文件:\ 
用户:/etc/passwd

密码:/etc/shadow\ 
组:/etc/group\ 
组密码:/etc/gshadow

1、用户

(1)创建用户: useradd username

-u 指定用户的uid;-g 指定用户所在基本组的gid(此组一定要存在哦!);-G 指定用户的附加 组;-c 指定用户的备注信息;-d 指定用户的家目录;-M 不为次用户建立家目录(系统默认的新 建每一个新用户都会为其建立家目录)。

(2)修改用户密码: passwd username

-l 锁定某个用户;

-u 解锁某个用户;

--stdin 通过管道输出密码,不必使用户输入两次。

(3)

userdel [-r] username (删除用户,-r表示删除家目录)

usermod -l new_username old_username (不改变家目录)

usermod -L username (锁定用户)

usermod -U username (解锁用户)\ 
停用帐号:注释/etc/passwd里用户所在行,即加"#",类是删除,但是用户信息是没有删除\ 
的,这就是不同之处。

passwd -S username 锁定密码

passwd -U username 解锁密码

2、组操作

groupadd groupname

-g 指定GID;-r 将此组添加为系统组。

groupdel group_name 删除的组帐号必须存在且不能是私有组

gpasswd -a username group_name 添加已经存在的用户到组

gpasswd -d username group_name

groups username 查看某个用户所在组

id [opition] username 查看用户UID和GID信息

finger [opition] username 查看用户的相关信息,包括主目录、启动Shell和用户名等

3、权限

a、chown [USERNAME]:[GROUPNAME] FILE 改变文件的属主、属组;

b、chgrp GROUPNAME FILE 改变文件的属组;

c、chmod 644 file1 位数不够时,从右至左进行执行(其中 r = 4, w = 2 ,x = 1)\ 
chmod ug=rw/u=rw,g=r,o= /u+rx,g-x file1 u=属主、g=属组、o=其他、a=所有 chmod [-R] --reference=file2 file1 以file2的权限为参考将file1权限修改成和 file2相同,-R指的是递归作用。

4、linux 特殊权限

文件或目录的特殊权限有三种:

(1) Suid

:用字母 s 表示。使得可执行程序不管执行者是谁,都能够以其拥有者的身份去运行。(有安全 隐患,慎用)占用属主权限部分的最后一位即x位,如果文件原来设有x位则加了suid后用小写的s 表示,否则用S表示。注意:suid权限对目录无效。\ 
例如:ls命令的原始权限是下面这样(属主有x权限)

-rwxr-xr-x 1 root root 81240 Oct 4 2006 ls

执行:# chmod u+s ls 后权限变成下面这样(小写s)

-rwsr-xr-x 1 root root 81240 Oct 4 2006 ls\ 
如果像上面那样对ls命令加上了suid权限,带来的后果是普通用户可以使用ls命令查看任何目录 的任何文件的信息。包括普通用户原来无法查看的/root目录。\ 
如果对fdisk命令设置了suid权限将使所有用户都能对磁盘分区,如果对service命令设置了suid 将使所有用户都能管理系统服务。慎用!

# ls -l |grep \^...s 该命令可以找出当前目录下所有被设置了suid的文件。

可以使用 $ chmod u+s /bin/ls 为可执行程序增加suid权限;也可以使用 $ chmod 4xxx 命令 其中x表示的是可执行程序的普通权限。

(2)Sgid\ 
:使得程序不管理执行者是谁,都能够以其属组的身份去运行。如果SGID被设置在目录上,在该 目录内新建的文件或目录的属组,将会是此目录的属组。 (不常用)占用属组权限的x位。

例如:

-rwxr-sr-x 1 root tty 10124 Apr 11 2007 /usr/bin/wall

wall 命令就是被设置的sgid的,这会使不管使用wall发信息的用户是谁,都将以tty组的权限发 送。

可以使用 $ chmod g+s 命令给文件或目录加sgid权限。

也可以使用 $ chmod 2xxx 命令其中x表示的是文件或目录的普通权限。

(3)Sticky:\ 
为了防止在一个完全开放权限的目录里用户之间相互删除对方完全开放权限的文件,可以对该目 录设置sticky权限。注意:sticky权限只能对目录生效。

例如:当前用户是bjxh

$ cd /tmp

$ touch test

$ chmod 777 test

$ su - xhce //换成xhce用户

$ rm /tmp/test

rm: cannot remove `/tmp/aa\': Operation not permitted

可以使用 $ chmod o+t /test 给test目录加上sticky权限

也可以使用 $ chmod 1xxx 命令 其中x表示的是目录的普通权限。

(4)chattr

管理员也无法删除的文件

加权限: chattr +i 文件名 (执行后文件权限看起来没有变化)

i 是不可修改和删除

a 是只可以追加(例如日志文件)

还有一些其他权限,总共11个!

查看该特殊权限: lsattr filename

(5)用户权限指派

配置sudo

编辑:visudo (不能用VI编辑)

用户名 主机名(IP)=命令1,命令2,命令3,。。。(绝对路径)\ 
执行,则

sodu 被授权的密码\ 
会提示密码,输入授权的密码,而不是root密码

查询 sudo -l

案例:授权用户zhangsan全权管理Apche

安装为源码版本,安装目录:/apache

visudo

zhangsan localhost.locadomain=/apche/bin/httpd,/bin/vi /apache/conf/httpd.conf

(6)Linux复杂权限控制:ACL

负责权限分配管理

针对分区

mount -o remount,acl /home 或者修改配置文件 /etc/fstab ,加在defaults,acl\ 
设置:

setfacl -m u:username:rwx filename

getfcal /filename 查看权限

服务器技术交流群请加微信 YJZyjz