菜鸟学Linux 第021篇笔记 特殊权限SUID、FACL、Linux 终端
xargs
特殊权限
SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者所属主
chmod u+s FILE
chmod u-s FILE
如果FILE本身此前就有执行权限,则SUID显示为s;否则显示S大写;
应用场景:passwd
SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组
chmod G+s FILE
chmod G-s FILE
应用场景:可以给一个目录组加S ,则其它用户在该目录建立文件时,
都属于该文件夹的基本组
bug: 可以删除其它用户建立的文件(stick可以补这个问题)
stick:在一个公共目录,每个用户都可创建和删除自己文件,但不可以删除其它用户
chmod o+t DIR
001stick
010 SGID
100 SUID
chmod 1755 /back/test
chmod 3755 /back/test
chmod 7755 /back/test
umask 0022
文件系统访问列表
FACL: File system Access Control List
利用文件扩展保存额外的访问控制权限
setfacl(set file access control lists)
-m设定d:可以设置目录
u:Uname:perm
g:Gname:perm
-x取消
u:Uname
g:Gname
e.g.setfacl -m d:u:user1:rx
setfacl -m g:Gname:w
setfacl -x u:user
getfacl(get file access control lists)
安全上下文件查询顺序
Owner --> Group --> Other
Owner --> facl,user --> Group --> facl,group --> Other
Linux 终端
command
w(Show who is logged on and what they are doing.)
who(show who is logged on)
-r(print current runlevel)
whoami(print effective userid)
last(show listing of last logged in users)
-n(num The same.)
显示/var/log/wtmp 文件
lastb显示登录未成功的连接
显示/var/log/btmp 文件
lastlog(reports the most recent login of all users or of a given user)
-uPrint the lastlog record for user with specified LOGIN only.
basename (strip directory and suffix from filenames)
$0 这样就可以取第0段字符最后一段文本
例如/root/adminusers.sh
如在脚本里写basename $0 则可以取出adminusers.sh名字 即基名
mail(send and receive mail)
-sSpecify subject on command line
hostname(show or set the system’s host name)
终端类型:
console:控制台
PTY 物理终端(VGA)
tty 虚拟控制台(VGA)
ttyS:串行终端
pts/#伪终端
特殊变量
$0取脚本执行名称
RANDOM 0-32768
随机数生成器: 熵池
RANDOM 0-32768
/dev/random
/dev/urandom
脚本练习
1、利用RANDOM 生成10个随机数,并找出其中的最大值和最小值;
Key
1.#!/bin/bash
#
declare -i MAX=0
declare -i MINI=32769
for I in `seq 10`; do
RANGE=$RANDOM
echo -n $RANGE,
if [ $RANGE -gt $MAX ]; then
MAX=$RANGE
fi
if [ $RANGE -lt $MINI ]; then
MINI=$RANGE
fi
done
echo -e "\n Max $MAX MINI: $MINI"