####################
###### 第六单元 ######
####################
####################
[root@localhost ~]# alias
alias cp=‘cp -i‘
alias egrep=‘egrep --color=auto‘
alias fgrep=‘fgrep --color=auto‘
alias grep=‘grep --color=auto‘
alias l.=‘ls -d .* --color=auto‘
alias ll=‘ls -l --color=auto‘
alias ls=‘ls --color=auto‘
alias mv=‘mv -i‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
alias命令用来设置指令的别名,使用该命令可以将一些较长的命令进行简化。
使用alias时,用户必须使用单引号‘‘将原来的命令引起来,防止特殊字符导致错误。
alias命令的作用只局限于当次登入的操作。
若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中。
####################
####################1.文件属性的查看####################
[root@localhost Desktop]# ls -l file
-rw-r--r--. 1 root root 25 Oct 11 05:30 file
分解开来:
- rw-r--r--. 1 root root 25 Oct 11 05:30 file
1 2 3 4 5 6 7 8
1.文件类型:"-"
- ##普通文件
d ##目录
c ##字符设备:显示字符的设备
s ##套接字:指跟外部沟通的一个接口,以文件来进行表示,这个文件就是套接字。
p ##管道
b ##块设备:一般系统的存储都是块设备
l ##连接
####################
[root@localhost Desktop]# ll /dev/pts/0
crw--w----. 1 root tty 136, 0 Oct 11 21:24 /dev/pts/0 ##字符设备
[root@localhost Desktop]# yum install mariadb-server -y ##抄的上课截图,不是自己敲的
...... ##安装数据库管理系统,MariaDB是MySQL的一个分支
[root@localhost Desktop]# ll /var/lib/mysql/mysql.sock
srwxrwxrwx. 1 mysql mysql 0 Oct 1 21:20 mysql.sock ##套接字
套接字就是源IP地址和目的IP地址以及源端口号和目的端口号的组合
简单的举例说明:Socket=Ip address+ TCP/UDP + port
[root@localhost Desktop]# df ##显示文件系统的可用空间
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3129072 7344828 30% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 84 942576 1% /dev/shm
tmpfs 942660 17008 925652 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
[root@localhost Desktop]# ll /dev/vda1
brw-rw----. 1 root disk 253, 1 Oct 11 21:09 /dev/vda1 ##块设备
####################
2.文件读写权限:"rw-r--r--"
rw-|r--|r--
u g o
u:所有人的权限
g:所有组的权限
o:其他人的权限
3.文件内容被系统记录的次数,就是文件要被删多少次才能删掉:"1"
####################
[root@localhost Desktop]# ln file westos ##建立硬链接
[root@localhost Desktop]# ll
total 8
-rw-r--r--. 2 root root 25 Oct 11 05:30 file ##文件内容被系统记录的次数变为2次
-rw-r--r--. 2 root root 25 Oct 11 05:30 westos
[root@localhost Desktop]# cat file
dfdasfddadfadfdsfdadfsdf
[root@localhost Desktop]# cat westos
dfdasfddadfadfdsfdadfsdf
[root@localhost Desktop]# rm -fr westos
[root@localhost Desktop]# ll
total 4
-rw-r--r--. 1 root root 25 Oct 11 05:30 file ##文件内容被系统记录的次数变为1次
ln是功能是为某一个文件在另外一个位置建立一个同不的链接
建立软链接:ln –s [源] [目的]。在选定的位置上生成一个文件的镜像,不占用磁盘空间,
建立硬链接:ln [源] [目的],没有参数-s。在选定的位置上生成一个和源文件大小相同的文件
无论是软链接还是硬链接,文件都会保持同步变化。
####################
4.文件所有人:"root"
####################
[root@localhost Desktop]# grep bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
student:x:1000:1000:Student User:/home/student:/bin/bash
可以用来查看系统的有效用户
####################
5.文件所有组:"root"
####################
[root@localhost Desktop]# useradd -G root westos
[root@localhost Desktop]# grep root /etc/group
root:x:0:westos
可以用来查看这个组里包含哪些用户
####################
6.文件内容的大小:"25"
####################
[root@localhost Desktop]# wc -c file
25 file
####################
7.文件最后一次被修改的时间:"Oct 11 05:30"
8.文件名字:"file"
####################2.查看目录属性####################
[root@localhost Desktop]# mkdir directory
[root@localhost Desktop]# mkdir directory/1 directory/2 directory/3
[root@localhost Desktop]# ls -ld directory
drwxr-xr-x. 5 root root 30 Oct 11 05:48 directory
分解开来:
d rwxr-xr-x. 5 root root 30 Oct 11 05:48 directory
1 2 3 4 5 6 7 8
1.类型
2.目录权限
3.子目录个数
4.目录所有人
5.目录所有组
6.目录里的子文件属性大小
####################
[root@localhost Desktop]# mkdir westos/
[root@localhost Desktop]# ll -d westos/
drwxr-xr-x. 2 root root 6 Oct 12 04:50 westos/
[root@localhost Desktop]# mkdir westos/f
[root@localhost Desktop]# ll -d westos/
drwxr-xr-x. 3 root root 14 Oct 12 05:02 westos/
其中14的组成是:
[6(不含名字的属性)+2("f":名字,一个有效字符,一个转译符)]+6("..":上层目录)
####################
7.目录中内容变化的时间
8.目录名字
####################3.文件所有人所有组的管理####################
chown username file|dir ##更改文件的所有人
chgrp username[:|.]groupname file|dir ##更改文件所有人所有组,[:|.]指":"和"."都可以
chown -R username dir ##更改目录本身及目录中的所有内容的所有人
chgrp -R groupname dir ##更改目录本身及目录中的所有内容的所有组
监控命令
watch -n 1 ls -lR /mnt
####################
实验:
[root@localhost Desktop]# touch /mnt/file1 /mnt/file2 /mnt/file3
[root@localhost Desktop]# mkdir /mnt/westos
[root@localhost Desktop]# cd /mnt/westos
[root@localhost westos]# touch linux1
[root@localhost westos]# touch linux2
[root@localhost westos]# touch linux3
[root@localhost westos]# cd ..
[root@localhost mnt]# useradd westos
[root@localhost mnt]# useradd test
[root@localhost mnt]# useradd hello
[root@localhost mnt]# id westos
uid=1001(westos) gid=1001(westos) 组=1001(westos)
[root@localhost mnt]# id test
uid=1002(test) gid=1002(test) 组=1002(test)
[root@localhost mnt]# id hello
uid=1003(hello) gid=1003(hello) 组=1003(hello)
[root@localhost mnt]# id student
uid=1000(student) gid=1000(student) 组=1000(student),10(wheel)
[root@localhost mnt]# chown student file1
[root@localhost mnt]# chown westos file2
[root@localhost mnt]# chown student:westos file2
[root@localhost mnt]# chown hello westos/
[root@localhost mnt]# chown -R hello westos/
[root@localhost mnt]# chown -R hello:westos westos/
[root@localhost mnt]# chgrp -R student westos/
[root@localhost mnt]# chown 1 file1 ##尽量不要用数字,1表示bin
[root@localhost mnt]# chown 0 file1 ##0表示root
[root@localhost mnt]# chown 789 file1 ##不存在,显示为789
####################
####################4.普通权限####################
rw-|r--|r--
u g o
u:文件所有人对文件可读可写
g:文件组成员对文件可读
o:其他人对文件可读
u优先匹配,g次优先,o当前两者不匹配时匹配
权限种类:
1)r
对文件,表示可以查看文件的内容
对目录,表示可以查看目录中存在的文件名称,即可以"ls"
2)w
对文件,表示可以更改文件的内容
对目录,表示可以在目录中执行添加或删除的操作
3)x
对文件,表示可以运行文件内记录的程序动作
对目录,表示可以进入到目录当中
####################
[root@localhost Desktop]# touch 123
[root@localhost Desktop]# echo date >123
[root@localhost Desktop]# sh 123
Tue Oct 11 22:45:12 EDT 2016
[root@localhost Desktop]# /root/Desktop/123
-bash: /root/Desktop/123: Permission denied ##权限不够
[root@localhost Desktop]# chmod u+x 123 ##从"rw-"更改为"rwx",拥有了可执行权限
[root@localhost Desktop]# ll 123
-rwxr--r--. 1 root root 5 Oct 11 22:45 123
[root@localhost Desktop]# /root/Desktop/123
Tue Oct 11 22:46:13 EDT 2016
####################
4)字母方式修改文件权限
chmod [-R] [u|g|o][+|-|=][r|w|x] file|dir
chmod u-x file1 ##file1所有人去掉x权限
chmod g+w file1 ##file1所有组添加w权限
chmod u-x,g+w file1 ##file1所有人去掉x权限,所有组添加w权限
chmod ugo-r file2 ##file2所有人,所有组,其他人去掉r权限
chmod ug+x,o-r file3 ##file3所有人,所有组添加x权限,其他人去掉r权限
5)数字方式修改文件权限
在linux中
r=4
w=2
x=1
-=0
文件权限数字表示方式
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---
rw-|r--|r--
u g o
u="rw-"=4+2+0=6
g="r--"=4+0+0=4
o="r--"=4+0+0=4
所以文件权限表示为644
chmod 要修改的权限值 file
例如:
chmod 777 file
####################5.系统默认权限的设定####################
从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限
设定方式:
umask ##查看系统保留权限,默认为022
777-022=755(目录权限)-111=644(文件权限)
umask 077 ##修改系统保留权限为077,此设定为临时设定,只在当前shell中生效
默认建立出来的文件权限是644,目录权限是755
默认建立出来的文件都没有执行权限
永久设定方式:
vim /etc/bashrc ##shell的umask配置
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 ##普通用户umask
72 else
73 umask 022 ##超级用户umask
74 fi
vim /etc/profile ##系统的umask配置
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 ##普通用户umask
61 else
62 umask 022 ##超级用户umask
63 fi
以上两个文件umask设定值必须保持一致
source /etc/bashrc ##刷新bash配置
source /etc/profile ##刷新系统配置
让设定立即生效
####################
umask 055 ##设定umask值为055
777-055=722-111=622 ##注意:2是写权限,1是执行权限,所以2减1还是2
####################
####################6.特殊权限####################
1.suid ##冒险位
只针对二进制可执行文件
由文件内记录的程序而产生的进程的所有人为文件所有人
和进程发起人的身份无关
设定方式:
chmod u+s file
suid=4
chmod 4xxx file
主要作用:针对某一个命令,对于用户身份进行提升或者下降
####################
终端0:
[root@localhost Desktop]# su - student
Last login: Wed Oct 12 02:54:09 EDT 2016 on pts/0
[student@localhost ~]$ watch -n 1 date
终端1:
[root@localhost Desktop]# ps ax -o user,group,comm | grep watch
root root watchdog/0
root root abrt-watch-log
root root abrt-watch-log
student student watch
终端0:
[student@localhost ~]$ exit
logout
[root@localhost Desktop]# ll -d /bin/watch
-rwxr-xr-x. 1 root root 24704 Feb 27 2014 /bin/watch
[root@localhost Desktop]# chmod u+s /bin/watch
[root@localhost Desktop]# ll -d /bin/watch
-rwsr-xr-x. 1 root root 24704 Feb 27 2014 /bin/watch
[root@localhost Desktop]# su - student
Last login: Wed Oct 12 03:03:04 EDT 2016 on pts/0
[student@localhost ~]$ watch -n 1 date
终端1:
[root@localhost Desktop]# ps ax -o user,group,comm | grep watch
root root watchdog/0
root root abrt-watch-log
root root abrt-watch-log
root student watch
[root@localhost Desktop]# chmod 777 /mnt
[root@localhost Desktop]# ll -d /bin/touch
-rwxr-xr-x. 1 root root 62432 1月 24 2014 /bin/touch
[root@localhost Desktop]# chmod u+s /bin/touch
[root@localhost Desktop]# ll -d /bin/touch
-rwsr-xr-x. 1 root root 62432 1月 24 2014 /bin/touch ##suid置位
[root@localhost Desktop]# su - student
上一次登录:日 10月 2 02:29:54 EDT 2016pts/0 上
[student@localhost ~]$ touch /mnt/file
[student@localhost ~]$ ll /mnt
total 0
-rw-rw-r--. 1 root student 0 Oct 2 02:33 file ##文件file的uid是touch命令所有者"root"
[student@localhost ~]$ exit
logout
[root@localhost Desktop]# ll -d /bin/touch
-rwsr-xr-x. 1 root root 62432 1月 24 2014 /bin/touch
[root@localhost Desktop]# chown leo /bin/touch ##将/bin/touch的所有者改为leo
[root@localhost Desktop]# ll -d /bin/touch
-rwxr-xr-x. 1 leo root 62432 1月 24 2014 /bin/touch
[root@localhost Desktop]# chmod u+s /bin/touch ##suid置位
[root@localhost Desktop]# ll -d /bin/touch
-rwsr-xr-x. 1 leo root 62432 1月 24 2014 /bin/touch
[root@localhost Desktop]# su - student
上一次登录:日 10月 2 02:33:18 EDT 2016pts/0 上
[student@localhost ~]$ touch /mnt/file1
[student@localhost ~]$ ll /mnt
[student@localhost ~]$ ll /mnt
total 0
-rw-rw-r--. 1 root student 0 Oct 2 02:33 file
-rw-rw-r--. 1 leo student 0 Oct 2 02:37 file1 ##文件file1的uid是touch命令所有者"leo"
####################
2.sgid ##强制位
1.对文件:只针对二进制可执行文件
任何人运行二进制可执行文件的程序时,程序产生的进程的所有组都是文件的所有组
和程序发起人组的身份无关
2.对目录:当目录有sgid权限后,目录中新建的所有文件的所有组
都自动归属到目录的所有组之中,和文件建立者所在的组无关
设定方式:
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir
####################
1.针对文件:
终端0:
[root@localhost Desktop]# watch -n 1 date
终端1:
[root@localhost Desktop]# ps ax -o user,group,comm | grep watch
root root watchdog/0
root root abrt-watch-log
root root abrt-watch-log
root root watch
终端0:
[root@localhost Desktop]# su - student
Last login: Wed Oct 12 02:28:04 EDT 2016 on pts/0
[student@localhost ~]$ watch -n 1 date
终端1:
[root@localhost Desktop]# ps ax -o user,group,comm | grep watch
root root watchdog/0
root root abrt-watch-log
root root abrt-watch-log
student student watch
终端0:
[student@localhost ~]$ exit
logout
[root@localhost Desktop]# ll -d /bin/watch
-rwxr-xr-x. 1 root root 24704 Feb 27 2014 /bin/watch
[root@localhost Desktop]# chmod g+s /bin/watch
[root@localhost Desktop]# ll -d /bin/watch
-rwxr-sr-x. 1 root root 24704 Feb 27 2014 /bin/watch ##sgid置位
[root@localhost Desktop]# watch -n 1 date
终端1:
[root@localhost Desktop]# ps ax -o user,group,comm | grep watch
root root watchdog/0
root root abrt-watch-log
root root abrt-watch-log
root root watch ##没有变化
终端0:
[root@localhost Desktop]# su - student
Last login: Wed Oct 12 02:29:45 EDT 2016 on pts/0
[student@localhost ~]$ watch -n 1 date
终端1:
[root@localhost Desktop]# ps ax -o user,group,comm | grep watch
root root watchdog/0
root root abrt-watch-log
root root abrt-watch-log
student root watch ##组身份提升为root
终端0:
[student@localhost ~]$ exit
logout
[root@localhost Desktop]# chmod 755 /bin/watch
2.针对目录:
[root@localhost Desktop]# chmod 777 /mnt
[root@localhost Desktop]# ll -d /mnt
drwxrwxrwx. 2 root root 17 Oct 12 02:54 /mnt
[root@localhost Desktop]# chmod g+s /mnt/
[root@localhost Desktop]# ll -d /mnt/
drwxrwsrwx. 2 root root 17 Oct 12 02:54 /mnt/ ##sgid置位
[root@localhost Desktop]# su - student
Last login: Wed Oct 12 03:10:42 EDT 2016 on pts/0
[student@localhost ~]$ touch /mnt/file
[student@localhost ~]$ ll /mnt
total 0
-rw-rw-r--. 1 student root 0 Oct 12 03:13 file ##文件自动归属到目录所在组
####################
3.sticky ##粘制位
t权限:
只针对于目录,当一个目录上有t权限,那么目录中的文件只能被所有人删除
设定方式:
chmod o+t directory
t=1
chmod 1xxx directory
sticky只针对目录,一般用于开放性的公共目录
####################
[root@localhost Desktop]# mkdir /pub
[root@localhost Desktop]# chmod 777 /pub/
[root@localhost Desktop]# useradd westos
[root@localhost Desktop]# useradd hello
[root@localhost Desktop]# su - westos
[westos@localhost ~]$ touch /pub/file1
[westos@localhost ~]$ exit
logout
[root@localhost Desktop]# su - hello
[hello@localhost ~]$ touch /pub/file2
[hello@localhost ~]$ exit
logout
[root@localhost Desktop]# ls -ld /pub
drwxrwxrwx. 2 root root 18 Oct 2 09:30 /pub
[root@localhost Desktop]# chmod 1777 /pub
[root@localhost Desktop]# ls -ld /pub
drwxrwxrwt. 2 root root 18 Oct 2 09:30 /pub ##sticky置位
[root@localhost Desktop]# su - hello
Last login: Sun Oct 2 09:30:14 EDT 2016 on pts/0
[hello@localhost ~]$ ls -l /pub
total 0
-rw-rw-r--. 1 westos westos 0 Oct 2 09:32 file1
-rw-rw-r--. 1 hello hello 0 Oct 2 09:30 file2
[hello@localhost ~]$ rm -fr /pub/file1
rm: cannot remove ‘/pub/file1’: Operation not permitted
[hello@localhost ~]$ exit
logout
[root@localhost Desktop]# chgrp westos /pub
[root@localhost Desktop]# ls -ld /pub
drwxrwxrwt. 2 root westos 30 Oct 2 09:32 /pub
[root@localhost Desktop]# su - westos
Last login: Sun Oct 2 09:32:46 EDT 2016 on pts/0
[westos@localhost ~]$ ls -l /pub
total 0
-rw-rw-r--. 1 westos westos 0 Oct 2 09:32 file1
-rw-rw-r--. 1 hello hello 0 Oct 2 09:30 file2
[westos@localhost ~]$ rm -fr /pub/file2
rm: cannot remove ‘/pub/file2’: Operation not permitted ##即使加入组也不能删除别人建立的文件
[westos@localhost ~]$ exit
logout
[root@localhost Desktop]# chown westos:westos /pub
[root@localhost Desktop]# ls -ld /pub
drwxrwxrwt. 2 westos westos 30 Oct 2 09:32 /pub
[root@localhost Desktop]# su - westos
Last login: Sun Oct 2 09:34:43 EDT 2016 on pts/0
[westos@localhost ~]$ ls -l /pub
total 0
-rw-rw-r--. 1 westos westos 0 Oct 2 09:32 file1
-rw-rw-r--. 1 hello hello 0 Oct 2 09:30 file2
[westos@localhost ~]$ rm -fr /pub/file2 ##把目录的所有人改成自己,就可以删除
[westos@localhost ~]$ ls -l /pub
total 0
-rw-rw-r--. 1 westos westos 0 Oct 2 09:32 file1
[root@localhost Desktop]# mkdir /pub/
[root@localhost Desktop]# chmod 766 /pub/
[root@localhost Desktop]# ll -d /pub/
drwxrw-rw-. 2 root root 6 Oct 12 02:39 /pub/
[root@localhost Desktop]# chmod o+t /pub/
[root@localhost Desktop]# ll -d /pub/
drwxrw-rwT. 2 root root 6 Oct 12 02:39 /pub/ ##发现出现大写的"T"
"T"的意思是:强制位的权限已经添加,但是没有生效。因为进不去目录,当然不生效
####################
####################
7777=suid+sgid+t
比如:
[root@localhost Desktop]# chmod 7777 /mnt
[root@localhost Desktop]# ll -d /mnt
drwsrwsrwt. 2 root root 17 Oct 12 03:13 /mnt ##三者全部置位
####################
####################
查询百度后发现:
1.很多博客里把suid和sgid称为强制位,把sticky称为冒险位
2.如果添加权限的位置上已有执行权限,则特殊权限置位以小写字母的方式表示;否则以大写字母表示。
####################
本文出自 “施超Linux学习笔记” 博客,谢绝转载!
原文地址:http://shichao.blog.51cto.com/5804953/1863113