特殊权限位及文件访问控制列表

一.特殊权限位

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

     chmod u+s FILE

     chmod u-s FILE

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

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

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

二.文件访问控制列表

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

  1.setfacl--设置文件访问控制列表

       -m: 设定

          u:UID:perm

          g:GID:perm

       -x:取消

          u:UID

          g:GID

   setfacl -m u:luochen:rw- inittab

  2.getfacl--获取文件访问控制列表

三.常用命令

  1.w--查看当前用那些用户登录到主机

  2.whoami--查看当前登录用户

  3.who--显示登录到当前的用户有哪些

  4.lastlog---最后登录日志

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

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

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

 -n #:

四.终端类型

console: 控制台

pty: 物理终端 (VGA)

tty#: 虚拟终端 (VGA)

ttyS#: 串行终端

pts/#: 伪终端

五.case语句:选择结构

     case SWITCH in 

     value1)

        statement

        ...

        ;;

     value2)

        statement

        ...

        ;;

      *)

        statement

        ...

        ;;

      esac

练习:

#!/bin/bash

#

DEBUG=0

ADD=0

DEL=0

for I in `seq 0 $#`; do

  if [ $# -gt 0 ]; then

 case $1 in

 -v|--verbose)

DEBUG=1

shift ;;

 -h|--help)

echo "Usage: `basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"

exit 0

;;

 --add)

ADD=1

ADDUSERS=$2

shift 2

;;

 --del)

DEL=1

DELUSERS=$2

shift 2

;;

 *)

echo "Usage: `basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"

exit 7

;;

    esac

  fi

done

if [ $ADD -eq 1 ]; then

  for USER in `echo $ADDUSERS | sed 's@,@ @g'`; do

    if id $USER &> /dev/null; then

      [ $DEBUG -eq 1 ] && echo "$USER exists."

    else

      useradd $USER

      [ $DEBUG -eq 1 ] && echo "Add user $USER finished."

    fi

  done

fi

if [ $DEL -eq 1 ]; then

  for USER in `echo $DELUSERS | sed 's@,@ @g'`; do

    if id $USER &> /dev/null; then

      userdel -r $USER

      [ $DEBUG -eq 1 ] && echo "Delete $USER finished."

    else

      [ $DEBUG -eq 1 ] && echo "$USER not exist."

    fi

  done

fi




你可能感兴趣的:(控制列表,特殊权限位,文件访问)