Linux 学习之路(九):特殊权限及终端

特殊权限及SUID

xargs

find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles\;
find /etc -size +1M | xargs echo >> /tmp/etc.largefiles

特殊权限

SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者。

chmod u+s FILE

chmod u-s FILE

如果FILE本身原来就有执行权限,则SUID显示为s,否则显示S

SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组。

chmod g+s FILE

chmod g-s FILE

shell1
[root@localhost ~]# useradd hadoop
[root@localhost ~]# useradd hive
[root@localhost ~]# useradd hbase
[root@localhost ~]# mkdir /tmp/project/
[root@localhost ~]# groupadd developteam
[root@localhost ~]# chown -R :developteam /tmp/project
[root@localhost ~]# usermod -a -G developteam hadoop
[root@localhost ~]# usermod -a -G developteam hbase
[root@localhost ~]# usermod -a -G developteam hive
[root@localhost ~]# id hadoop
uid=1016(hadoop) gid=1016(hadoop)=1016(hadoop),1019(developteam)
[root@localhost ~]# chmod g+s /tmp/project

shell2
[root@localhost ~]# cd /tmp/project
[root@localhost project]# ls -ld
drwxr-xr-x. 2 root developteam 6 10月 20 11:12 .
[root@localhost project]# chmod g+w /tmp/project/
[hadoop@localhost ~]$ ls -l
总用量 0
-rw-rw-r--. 1 hadoop hadoop 0 10月 20 11:30 a.hadoop
-rw-rw-r--. 1 hadoop developteam 0 10月 20 11:34 b.hadoop

Sticky:在一个公共目录,每个都可以创建文件,删除自己的文件,但不能删除别人的文件。

chmod o+t DIR

chmod o-t DIR

shell1
[root@localhost ~]# chmod o+t /tmp/project/
shell2
[hbase@localhost project]$ ls -l
总用量 0
-rw-rw-r-[hbase@localhost project]$ rm b.hadoop
rm: 无法删除"b.hadoop": 不允许的操作-. 1 hbase  developteam 0 10月 20 11:46 a.hbase
-rw-rw-r--. 1 hadoop developteam 0 10月 20 11:34 b.hadoop

000:

001:

110:

111:

chmod 5755 /backup/test

文件系统访问列表:

FACL:Filesystem Access Control List

利用文件扩展保存额外的访问控制权限

setfacl:设置facl

​ -m:设定

​ u:UID:perm

​ g:GID:perm

​ -x:取消

​ u:UID

​ g:GID

​ d:u:UID:perm 为目录设置默认的访问控制列表

getfacl:获取facl

[root@localhost ~]# mkdir /backup
[root@localhost ~]# cd /backup
[root@localhost backup]# cp /etc/inittab ./
[root@localhost backup]# getfacl inittab
# file: inittab
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@localhost backup]# setfacl -m u:hadoop:rw  inittab
[root@localhost backup]# getfacl inittab
# file: inittab
# owner: root
# group: root
user::rw-
user:hadoop:rw-
group::r--
mask::rw-
other::r--

默认情况下的文件访问次序:

Owner->Group->Other

权限控制后的访问顺序:

Owner->facl,user->Group->facl,group->Other

跟用户管理相关的几个命令:

whoami 当前登录到系统的有效用户

who 显示登录到当前系统上的用户有哪些

[root@localhost ~]# who
		 终端
root     tty1         2018-10-20 10:45
root     pts/0        2018-10-20 10:46 (192.168.83.1)
root     pts/1        2018-10-20 11:14 (192.168.83.1)
root     pts/2        2018-10-20 13:19 (192.168.83.1)

who -r :显示当前运行级别

写一个脚本:

每隔5秒钟,就来查看hadoop是否已经登录,如登录,显示已经登录,并退出

sleep 5

w 用户登录后执行了什么命令,比who更详细

last 显示/var/log/wtmp文件,显示用户登录历史及系统重启历史

​ -n #:显示最近#次的相关信息

lastb 显示/var/log/btmp文件,显示用户错误的登录尝试

​ -n #:显示最近#次的相关信息

lastlog 当前系统上每一个用户的登录信息

​ -u USERNAME 显示特定用户最近的登录信息

basename 显示路径基名

​ $0:执行脚本时的脚本路径及名称

mail

​ -s 标题

把前面文件当作正文发送给root用户

[root@localhost ~]# cat /etc/fstab | mail -s "How are you?" root

使用输入重定向发送邮件

[root@localhost ~]# mail -s "How are you" root < /etc/fstab

hostname 显示当前主机的主机名(实时获取)

更改主机名 hostname www.magedu.com

如果当前主机的主机名不是www.magedu.com就将其改为www.magedu.com

如果当前主机的主机名是localhost,就将其改为www.magedu.com

如果当前主机的主机名为空,或者为(none),或者为localhost,就将其改为www.magedu.com

[ -z `hostname`] || [`hostname`=='(none)' -o `hostname`=='localhost' ] && hostname www.magedu.com
终端类型:

​ console:控制台,直接连接到当前物理设备上的

​ pty:物理终端(VGA显卡)

​ tty:虚拟终端(VGA),附属在物理控制台上并结合软件虚拟实现的

​ ttys:串行终端

​ pts/#:伪终端

shell

生成随机数:

RANDOM:0-32768

随机数生成器:熵池

/dev/random:更安全

/dev/urandom:如果熵池中没数了,就会阻塞

写一个脚本,利用RANDOM生成10个随机数,并找出其中的最大值和最小值.

1.生成10个随机数
[root@localhost jiaoben]# chmod +x round.sh
[root@localhost jiaoben]# ./round.sh
17083,2151,21912,11866,19253,2454,25467,14927,17765,29592
round.sh
#!/bin/bash
for I in {1..10};do
        if [ $I -le 9 ];then
                echo -n "$RANDOM,"
        else
                echo "$RANDOM"
        fi  
done 
2.生成随机数并找到里面的最大值
#!/bin/bash
declare -i MAX=0
for I in {1..10};do
        MYRAND=$RANDOM
        if [ $I -le 9 ];then
                echo -n "$MYRAND,"
        else             
                echo "$MYRAND"
        fi            
        [ $MYRAND -gt $MAX ] && MAX=$MYRAND
done    
echo "$MAX"
[root@localhost jiaoben]# ./round.sh
26629,9607,19149,4586,20905,14772,2410,12601,14088,7130
26629
3.找出生成的随机数中最大值和最小值的初步写法
#!/bin/bash
declare -i MAX=0
declare -i MIN=0
for I in {1..10};do
        MYRAND=$RANDOM
        [ $I -eq 1 ] && MIN=$MYRAND
        if [ $I -le 9 ];then
                echo -n "$MYRAND,"
        else
                echo "$MYRAND"
        fi  
        [ $MYRAND -gt $MAX ] && MAX=$MYRAND
        [ $MYRAND -lt $MIN ] && MIN=$MYRAND
done
echo $MAX,$MIN
[root@localhost jiaoben]# ./round.sh
8226,18603,29308,22031,11377,14528,21928,3351,3026,4510
29308,3026
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值