찾다

RHEL6上课笔记之acl

Jun 07, 2016 pm 03:05 PM
aclpasswdShadow수업을 듣다메모

Passwd,shadow,gshadow,group 这四个文件是 PAM ( portable authentication module )的数据库。 pam 的文件都是 (.so) 结尾的。 cd /lib64/security 目录中有很多 .so 的文件。其中到迄今为止都没有 bug 的是 pam_unix.so , pam_userdb.so 是的 pam_unix.

Passwd,shadow,gshadow,group 这四个文件是PAMportable authentication module)的数据库。

pam的文件都是(.so)结尾的。

cd /lib64/security目录中有很多.so的文件。其中到迄今为止都没有bug的是pam_unix.sopam_userdb.so是的pam_unix.so助手。

PAM的配置文件在/etc/pam.d/下。现在我们来看其中的一个配置文件etc/pam.d/login/

login中有四类

auth:密码正确性。

passwd:密码最多能用的时间。

account:帐号是否合法。

session:性能(如,分配多少cpu)。

其中有一行是:

account    required(必要条件)   pam_nologin.so

etc目录下touch 一个名为nologin的文件,那么用除root以外的用户登入就会提示鉴定错误(免打扰模式)。 删掉就恢复正常。          

 

单单针对roottty

   不让root在某个tty窗口登入。可以配置/etc/securetty的白名单配置文件。例如:如果不想让roottty4登入,那么就在securetty白名单中把tty4注释掉。

也可以阻止其它用户在某个tty登入。需要配置/etc/security/access.conf配置文件。配置方法如下:

#-:ALL EXCEPT (wheel) shutdown sync:LOCAL

 - : gg : tty4  # 不让gg用户在tty4上登入,其它tty可以。(也可以在这里配置root)。配置完access.conf文件后还需要配置一个文件,就是在/etc/pam.d/login文件中加上一句:account    required     pam_nologin.so

 

acl:对文件设置acl

     给文件添加第二属主。

     使用root 用户在tmp1    

[root@station10 tmp1]# echo  “helo body” >>  file

[root@station10 tmp1]# getfacl file           (查看文件属主)

# file: file

# owner: root

# group: root

user::rw-

group::r--

mask::r--

other::r--

[root@station10 tmp1]# su - eg

[eg@station10 ~]$ cd /root/tmp1/

[eg@station10 tmp1]$ echo 111 >> file

-bash: file: 权限不够

[root@station10 tmp1]# setfacl -m u:eg:rw file     -m 修改。用户:用户名:权限)

[root@station10 tmp1]# getfacl file                     

# file: file

# owner: root

# group: root

user::rw-

user:eg:rw-          #eg用户

group::r--

mask::rw-       

other::r--

[root@station10 tmp1]# su - eg

[eg@station10 ~]$ echo xxx >> /root/tmp1/file

[eg@station10 ~]$ cat /root/tmp1/file

helo body

xxx

       在做以上实验时如果在执行 setfacl -m u:eg:rw file 的时候提示 不支持的操作,那是因为分区不具备acl品质。那么就需要给分区添上acl的品质。如下:

[root@station10 tmp1]# tune2fs -l /dev/sda3

……

Default mount options:    user_xattr  acl             # 具备acl品质

……

       如果没有该品质那么就要给它加上。第1种方式:“ tune2fs  -o   acl    /dev/sda3  添上。第二种方式:使用手工mount  -o    alc    /dev/sda3 。第三种方式:开机自动挂载上,配置fstab如下图:使用mount   -a  验证。Mount 查看是否具有acl品质。


defaults后面可以有(noexec,nodev)参数。当然这些参数也可以在挂载的时候写上或则fstab都行。

noexec:如果加了此参数那么在该分区就不能够使用( ./  ) 执行任何可执行文件。就会提示权限不够。

nodev:???

    [root@station10 tmp1]# mknod egfile b 8 7
 

   [root@station10 tmp1]# mount egfile /mnt1

    /tmp1/egfile           99M  5.6M   89M   6% /mnt1

   /dev/sda7              99M  5.6M   89M   6% /mnt

 

acl:对目录设置acl

       我们新建一个文件夹,然后使用刚刚对文件增加第二属主的方式来做。如下:

       [root@station10 /]# mount /dev/sda7 /mnt

       [root@station10 mnt]# mkdir dir

       [root@station10 mnt]# getfacl dir/

       # file: dir/

       # owner: root

       # group: root

       user::rwx

       group::r-x

       other::r-x

       [root@station10 mnt]# setfacl -m u:eg:rwx dir

       setfacl: dir: 不支持的操作     #由于刚刚挂载的时候没有添加acl 品质的结果(一定要注意,如果没有acl 品质那么就不能做acl。)

       [root@station10 mnt]# tune2fs -o acl /dev/sda7

       [root@station10 mnt]# tune2fs -l /dev/sda7

       ……

       Default mount options:    acl          #有了

       ……

       [root@station10 /]# umount /mnt

       [root@station10 /]# mount /dev/sda7 /mnt

       [root@station10 mnt]# setfacl -m u:eg:rwx dir

       [root@station10 mnt]# getfacl dir/

       # file: dir/

       # owner: root

       # group: root

       user::rwx

       user:eg:rwx

       group::r-x

       mask::rwx

       other::r-x

       [root@station10 mnt]# cd dir/

       [root@station10 dir]# mkdir dir1

       [root@station10 dir]# getfacl dir1/

       # file: dir1/

       # owner: root

       # group: root

      user::rwx

      group::r-x

      other::r-x

      #我们刚刚用root建的第一个文件夹(dir)我给它添加了第二个属主。现在需要再到dir 目录下再建立一个文件夹(dir1)并且也让它属于eg 用户,可是建完之后它并不属于eg,而是单单属于root。那我又得给它增加第二属主太麻烦了。可以使用一种方法让它一直保持第一层的特性。如下所示:

       [root@station10 mnt]# ls -ld dir/

       drwxrwxr-x+ 3 root root 1024  6  4 22:27 dir/

       [root@station10 dir]# ls -ld dir1/

       drwxr-xr-x. 2 root root 1024  6  4 22:36 dir1/

       看到dir dir1  ls -ld 有点不一样,那是因为dir1 没有保持dir 的特性(+)。那接下来我就让它保持dir 的特性。

       就是在建立文件夹的时候加上一个d,就可以让它里面建立的第二层第三层等等都保持第一层的特性。如下:

      [root@station10 mnt]# mkdir Docu

      [root@station10 mnt]# setfacl -m d:u:eg:rwx Docu

      [root@station10 mnt]# getfacl Docu/

      # file: Docu/

      # owner: root

      # group: root

      user::rwx

      group::r-x

      other::r-x

      default:user::rwx

      default:user:eg:rwx

      default:group::r-x

      default:mask::rwx

      default:other::r-x

      [root@station10 mnt]# cd Docu/

      [root@station10 Docu]# mkdir Docu1

      [root@station10 Docu]# getfacl Docu1/

       # file: Docu1/

       # owner: root

       # group: root

       user::rwx

       user:eg:rwx

      group::r-x

      mask::rwx

      other::r-x

      default:user::rwx

      default:user:eg:rwx

      default:group::r-x

      default:mask::rwx

      default:other::r-x

       #观察到实验的结果了吧。

       现在我想把第一层文件恢复原来的样子:

      [root@station10 mnt]# setfacl -x d:u:eg Docu/    # -x:删除)恢复只有一个属主,还留有defaults

       [root@station10 mnt]# setfacl -b Docu/    #恢复正常。可以直接使用-b-b 级别高于-x)。

     

s位程序:可执行文件

       文件被谁运行就归谁所有:

       [root@station10 ~]# /bin/sleep 1000

       [root@station10 ~]# ps -eo command,group,user | grep sleep | grep -v grep

       /bin/sleep 1000             root     root

       [eg@station10 ~]$ /bin/sleep 1000

       [eg@station10 ~]$ ps -eo command,group,user | grep sleep | grep -v grep

        /bin/sleep 1000             eg       eg

      观察如上实验,就可发现不管是root还是eg 运行sleep ,它的属主都是运行者的。

      在工业环境中,有时会要求我们用某个用户来运行某个程序,但是这个程序却不归我们这个用户所有。也就只有S 位程序能够实现。

      [root@station10 ~]# ls -l  /bin/sleep

      -rwxr-xr-x. 1 root root 27880  6 14 2010 /bin/sleep

       [root@station10 ~]# chmod 4755 /bin/sleep

       [root@station10 ~]# ls -l  /bin/sleep


        [eg@station10 ~]$ /bin/sleep 1000

        [eg@station10 ~]$ ps -eo command,group,user | grep sleep | grep -v grep

        /bin/sleep 1000             eg       root

       完全和刚刚的相反了,属主是root,而不是eg。(也可以是组)

 

s位程序:目录

       对于目录而言,研究s程序只研究组。

        [root@station10 mnt]# mkdir dir

        [root@station10 mnt]# chown wang5:eg dir/     #dir属于wang5用户,属于eg组。

        [root@station10 mnt]# chmod 2755 dir/

        [root@station10 mnt]# ls -ld dir/

        drwxr-sr-x. 2 wang5 eg 1024  6  4 23:40 dir/

        [root@station10 mnt]# cd dir

        [root@station10 dir]# mkdir d1       #dir里新建d1

        [root@station10 dir]# ls -ld d1/

        drwxr-sr-x. 2 root eg 1024  6  4 23:40 d1/

        root 建立的都必须归eg 组。连root都必须尊守。

        原理:新建内节点。

        [root@station10 dir]# cp -rp /etc/ ./

        [root@station10 dir]# ls -ld *

        drwxr-sr-x.   2 root eg   1024  6  5 09:19 d1

        drwxr-sr-x. 117 root root 8192  6  5 09:19 etc

        漏洞:移动或拷贝文件,组就会归移动者。

        Other t (对文件的保护)

        t 只对777目录,一般是tmp

        [root@station10 mnt]# mkdir tmp

        [root@station10 mnt]# chmod 1777 tmp

        [root@station10 mnt]# ls -ld tmp/


        [root@station10 mnt]# cd tmp/

        [root@station10 tmp]# touch 1.txt

        [root@station10 tmp]# ls -l 1.txt

        -rw-r--r--. 1 root root 0 Jun  6 21:55 1.txt

        [root@station10 tmp]# su – wang5

        [wang5@station10 ~]$ cd /mnt/tmp/

        [wang5@station10 tmp]$ rm -rf 1.txt

        rm: 无法删除"1.txt": 不允许的操作

        增加了t位,是对777目录的保护,只能是自己本身和root可以删除外其它用户不可删除。

 

 

REDHAT6

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
InnoDB 버퍼 풀과 성능의 중요성을 설명하십시오.InnoDB 버퍼 풀과 성능의 중요성을 설명하십시오.Apr 19, 2025 am 12:24 AM

innodbbufferpool은 데이터와 인덱싱 페이지를 캐싱하여 디스크 I/O를 줄여 데이터베이스 성능을 향상시킵니다. 작업 원칙에는 다음이 포함됩니다. 1. 데이터 읽기 : BufferPool의 데이터 읽기; 2. 데이터 작성 : 데이터 수정 후 BufferPool에 쓰고 정기적으로 디스크로 새로 고치십시오. 3. 캐시 관리 : LRU 알고리즘을 사용하여 캐시 페이지를 관리합니다. 4. 읽기 메커니즘 : 인접한 데이터 페이지를 미리로드합니다. Bufferpool을 크기를 조정하고 여러 인스턴스를 사용하여 데이터베이스 성능을 최적화 할 수 있습니다.

MySQL 대 기타 프로그래밍 언어 : 비교MySQL 대 기타 프로그래밍 언어 : 비교Apr 19, 2025 am 12:22 AM

다른 프로그래밍 언어와 비교할 때 MySQL은 주로 데이터를 저장하고 관리하는 데 사용되는 반면 Python, Java 및 C와 같은 다른 언어는 논리적 처리 및 응용 프로그램 개발에 사용됩니다. MySQL은 데이터 관리 요구에 적합한 고성능, 확장 성 및 크로스 플랫폼 지원으로 유명하며 다른 언어는 데이터 분석, 엔터프라이즈 애플리케이션 및 시스템 프로그래밍과 같은 해당 분야에서 이점이 있습니다.

MySQL 학습 : 새로운 사용자를위한 단계별 안내서MySQL 학습 : 새로운 사용자를위한 단계별 안내서Apr 19, 2025 am 12:19 AM

MySQL은 데이터 저장, 관리 및 분석에 적합한 강력한 오픈 소스 데이터베이스 관리 시스템이기 때문에 학습 할 가치가 있습니다. 1) MySQL은 SQL을 사용하여 데이터를 작동하고 구조화 된 데이터 관리에 적합한 관계형 데이터베이스입니다. 2) SQL 언어는 MySQL과 상호 작용하는 열쇠이며 CRUD 작업을 지원합니다. 3) MySQL의 작동 원리에는 클라이언트/서버 아키텍처, 스토리지 엔진 및 쿼리 최적화가 포함됩니다. 4) 기본 사용에는 데이터베이스 및 테이블 작성이 포함되며 고급 사용량은 Join을 사용하여 테이블을 결합하는 것과 관련이 있습니다. 5) 일반적인 오류에는 구문 오류 및 권한 문제가 포함되며 디버깅 기술에는 구문 확인 및 설명 명령 사용이 포함됩니다. 6) 성능 최적화에는 인덱스 사용, SQL 문의 최적화 및 데이터베이스의 정기 유지 보수가 포함됩니다.

MySQL : 초보자가 마스터하는 필수 기술MySQL : 초보자가 마스터하는 필수 기술Apr 18, 2025 am 12:24 AM

MySQL은 초보자가 데이터베이스 기술을 배우는 데 적합합니다. 1. MySQL 서버 및 클라이언트 도구를 설치하십시오. 2. SELECT와 같은 기본 SQL 쿼리를 이해하십시오. 3. 마스터 데이터 작업 : 데이터를 만들고, 삽입, 업데이트 및 삭제합니다. 4. 고급 기술 배우기 : 하위 쿼리 및 창 함수. 5. 디버깅 및 최적화 : 구문 확인, 인덱스 사용, 선택*을 피하고 제한을 사용하십시오.

MySQL : 구조화 된 데이터 및 관계형 데이터베이스MySQL : 구조화 된 데이터 및 관계형 데이터베이스Apr 18, 2025 am 12:22 AM

MySQL은 테이블 구조 및 SQL 쿼리를 통해 구조화 된 데이터를 효율적으로 관리하고 외래 키를 통해 테이블 ​​간 관계를 구현합니다. 1. 테이블을 만들 때 데이터 형식을 정의하고 입력하십시오. 2. 외래 키를 사용하여 테이블 간의 관계를 설정하십시오. 3. 인덱싱 및 쿼리 최적화를 통해 성능을 향상시킵니다. 4. 데이터 보안 및 성능 최적화를 보장하기 위해 데이터베이스를 정기적으로 백업 및 모니터링합니다.

MySQL : 주요 기능 및 기능이 설명되었습니다MySQL : 주요 기능 및 기능이 설명되었습니다Apr 18, 2025 am 12:17 AM

MySQL은 웹 개발에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 주요 기능에는 다음이 포함됩니다. 1. 다른 시나리오에 적합한 InnoDB 및 MyISAM과 같은 여러 스토리지 엔진을 지원합니다. 2.로드 밸런싱 및 데이터 백업을 용이하게하기 위해 마스터 슬레이브 복제 기능을 제공합니다. 3. 쿼리 최적화 및 색인 사용을 통해 쿼리 효율성을 향상시킵니다.

SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다Apr 18, 2025 am 12:12 AM

SQL은 MySQL 데이터베이스와 상호 작용하여 데이터 첨가, 삭제, 수정, 검사 및 데이터베이스 설계를 실현하는 데 사용됩니다. 1) SQL은 Select, Insert, Update, Delete 문을 통해 데이터 작업을 수행합니다. 2) 데이터베이스 설계 및 관리에 대한 생성, 변경, 삭제 문을 사용하십시오. 3) 복잡한 쿼리 및 데이터 분석은 SQL을 통해 구현되어 비즈니스 의사 결정 효율성을 향상시킵니다.

초보자를위한 MySQL : 데이터베이스 관리를 시작합니다초보자를위한 MySQL : 데이터베이스 관리를 시작합니다Apr 18, 2025 am 12:10 AM

MySQL의 기본 작업에는 데이터베이스, 테이블 작성 및 SQL을 사용하여 데이터에서 CRUD 작업을 수행하는 것이 포함됩니다. 1. 데이터베이스 생성 : createAbasemy_first_db; 2. 테이블 만들기 : CreateTableBooks (idintauto_incrementprimarykey, titlevarchar (100) notnull, authorvarchar (100) notnull, published_yearint); 3. 데이터 삽입 : InsertIntobooks (Title, Author, Published_year) VA

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기