리눅스의 권한 설정 (기본 권한, 숨겨진 특권과 특별한 권리)

보웬 개요 :

  • A, umask를 명령 (기본 권한)
  • 두, 위해 chattr와 lsattr 명령 (숨겨진 권한)
  • 셋째, SUID, SGID와의 SBIT의 역할 (특별 허가)

A, umask를 명령

chmod를 umask를이 원본 파일 권한이 666 원래 디렉토리 권한은 777입니다, 그리고 조작으로 해당 원래의 권한의 umask 값 말했다 방지 마스크의 형태로 권한 마스크, 총 4를 나타냅니다 뭔가 관련이있다 결과는 파일이나 디렉토리에 대한 새로운 기본 권한입니다. 다음과 같습니다 :

[root@localhost ~]# umask     #执行umask命令
0022

당신은 특별 허가, 소유자 권한, 그룹 권한, 등, 이제 새로운 파일을 생성 밖으로 0022 위의 쿼리와 다른 사람의 권리, 기본 파일에 대해 각각 네 자리 숫자가 "0022"입니다 볼 수 있습니다 새로운 디렉토리는 다음 디렉토리에 대한 기본 권한이 755 인 경우 다음과 같이 권한, 644 :

[root@localhost tmp]# touch test1.txt    #新建一个文件
[root@localhost tmp]# ll test1.txt     #可以看到默认的权限为644
-rw-r--r-- 1 root root 0 Aug 12 17:51 test1.txt
[root@localhost tmp]# mkdir test2  #新建一个目录
[root@localhost tmp]# ls -ld test2     #可以看到默认的权限为755
drwxr-xr-x 2 root root 6 Aug 12 17:51 test2

권한 디지털 umask를 수정 :

[root@localhost ~]# umask 0002        #直接在umask命令后输入权限数字即可
[root@localhost ~]# umask    #验证
0002

시스템을 다시 시작 기본 umask를 값으로 되돌아갑니다 이후의 umask 명령의 umask의 값은 임시 변경 될 수 있습니다. 영구적으로의 umask 값을 수정하려면, 당신은 파일 "027의 umask"에 라인을 추가 할 수 있습니다, 027에 기본의 umask 값을 설정하기 위해, 예를 들어,은 / etc / bashrc에 파일을 / etc / profile 파일을 수정하거나 수정해야하고, 소스 / 등의 사용 / 프로파일 변경을 적용.

은 / etc / 프로파일 및 / etc / bashrc에 사용자 로그인 시스템을 설정할 때 자동으로 특정 작업을 수행하기 위해 사용될 수 있으며, 이들 사이의 차이는은 / etc / 프로파일은 사용자가 로그인, 및 / etc / bashrc에에서만 처음 실행될 때마다 사용자 로그온 부하 배쉬 쉘을 실행됩니다.

따라서,은 / etc / profile 파일, 효과에 오직 새로 만든 사용자를 수정하는 경우, 그것은을 / etc / bashrc에 파일을 수정하는 경우, 모든 사용자에 대해 적용됩니다.

높은 우선 순위에서 특정 두 개 이상의 구성 파일에 대한 사용자의 .bashrc 구성 파일.

두, 위해 chattr와 lsattr 명령

때때로 우리는 그들이 위해 chattr 명령을 사용하여 파일을 고정했기 때문에 루트 권한, 파일을 수정할 수 없습니다입니다,이 상황을 발생합니다. 큰 역할을 명령 위해 chattr, 일부 기능은 리눅스 커널 버전에서 지원하지만, 지금은 시스템의 대부분은 리눅스 커널 2.6 이상 실행하는 생산하고 있습니다. 위해 chattr 명령으로 속성은 시스템의 보안을 향상시킬 수 있습니다 수정할 수 있지만 그것은 모든 디렉토리에 적합하지 않습니다합니다. 위해 chattr 명령은 /는 / dev, / tmp를 / var 디렉토리를 보호 할 수 없습니다. lsattr 명령은 파일을 위해 chattr 명령을 속성을 표시합니다.

이 두 명령은 파일을보고 변경하는 데 사용됩니다, chmod 명령과 비교하여 디렉토리 속성, 방금 읽은 파일을 변경하고, 쓰기, 실행 권한을하지만, 기본 속성 제어 (즉, 특별한 권한입니다)는 chattr에 의해 변경 chmod를 가.

1, 위해 chattr 명령 사용 :

[root@localhost ~]# chattr [+-=] [ASacdistu]   文件或目录名

다양한 옵션의 의미는 다음과 같습니다

  • + : 숨겨진 매개 변수 중 하나 이상을 추가 원래 숨기기의 기준에 설정 매개 변수를 설정합니다.
  • - : 특정 숨겨진 매개 변수의 제거에 따라 원래의 숨겨진 매개 변수를 설정한다.
  • = 지정된 매개 변수에 대한 숨겨진 업데이트합니다.
  • A :이 속성은 설정하면 당신은 현재 (I / O를 느린 기계 과도한 디스크 액세스를 방지하기 위해, 파일이나 디렉토리 자체가 atime에 수정되지 않습니다 파일이나 디렉토리를 다시 액세스해야하는 경우 제안 된 파일 시스템)이 항목을 처리 할 수있는 옵션을 탑재합니다.
  • S : 디스크에 기록 일반적으로 비 동기화 된 파일 플러스 S이 속성 경우, 당신이 어떤 파일을 수정하면 변경 사항이 "동기화"디스크에 기록됩니다.
  • A : 추가 즉, 매개 변수를 설정 한 후, 전용 보안, 다중 서버 로그 파일을 파일에 데이터를 추가 할 수 있지만 삭제할 수 없습니다 루트 만이 속성을 설정할 수 있습니다.
  • C : compresse 즉, 저장하기 전에 압축 파일을 설정할지 여부. 자동 읽기 압축 해제 작업을 통해 이동해야합니다.
  • D : 어떤 프하는 대상 파일이 덤프 프로그램을 백업 할 수 없습니다 설정합니다.
  • 내가 : 파일이나 디렉토리에 초점, 파일 이름을 변경, 삭제할 수 없습니다 설정 링크 관계를 설정하고, 작성하거나 내용을 추가 할 수 없습니다. 내가 파일 시스템의 보안 설정에 큰 도움의 매개 변수를 설정합니다.
  • 데이터 = 명령 또는 데이터 = 되돌림 파일 시스템을 개시 파일이 처음 쓸 때 (저널) 기록 : J 다음 파라미터로 마운트 할 때되도록 즉 저널이 파라미터가 설정된다. 매개 변수가 데이터 = 저널 파일 시스템 설정되어있는 경우, 매개 변수는 자동으로 비활성화.
  • S :이 파일이 삭제 된 경우 파일 세트의 속성은, 완전히 하드 디스크 공간을 제거합니다. 그래서 만약 실수로 다시 저장 완전히없는도 삭제합니다.
  • U : S와 달리, 집합 U는, 실제로 디스크에 저장된 콘텐츠 데이터가, 상기 데이터 복구 기술은 데이터를 복구 할 때 사용될 수있다.

옵션 매개 변수는 a와 내가하는 데 사용됩니다. 삭제할 수 없습니다 추가 할 수있는 필수 유일한 옵션, 로깅 시스템에 대한 여러 보안 설정. 그리고 난 더 엄격한 보안 설정 만 수퍼 유저 (루트) 또는 CAP_LINUX_IMMUTABLE 처리 용량 (식별) 프로세스가 옵션으로 적용 할 수있을 것입니다.

참고 : XFS 파일 시스템은 AadiS 매개 변수를 지원합니다.

2 lsattr 명령 구문 :

[root@localhost ~]# lsattr [adR]  文件或目录

: 다양한 옵션은 다음과 같은 의미가
-a : 속성 숨김 파일도 표시된다
-d를 : 당신이 디렉토리를 보면, 디렉토리 자체보다는 디렉토리의 속성 목록 파일 이름 만;
-R : 함께 또한 데이터 서브 디렉토리 아웃 넥타이;

사용 예제 :

1을 위해 chattr 명령을 사용하여 파일을 수정 중요한 시스템이 다운되지 않도록하려면 :

[root@localhost ~]# chattr +i /etc/resolv.conf

그런 다음 파일 조작 명령 등으로 MV /etc/resolv.conf 파일이 아닌 허용 조작에서 얻어진 결과이다. 경고 : W10를 메시지가 표시되면 정력 파일을 편집 할 수있는 읽기 전용 파일 오류를 변경. 위해 chattr -i /etc/resolv.conf 파일이 파일을 수정하려면 당신은 내가 속성을 제거해야합니다

[root@localhost ~]# lsattr /etc/resolv.conf   #查看一下属性,会得到以下结果
----i-------- /etc/resolv.conf

파일 만 입력하고 추가 데이터 만 할 수 있도록 2, 로그 파일의 다양한 삭제할 수 없습니다 :

[root@localhost ~]# chattr +a /var/log/messages

세, SUID, SGID 및 SBIT 역할

1, SUID 역할

사실, sudo를 SUID와 SGID의 역할은 비슷합니다. 사용자 A가 파일 B는 SUID 비트를 설정하면 사용자 B가 원래 실행 파일에 속한 실행하고자 할 때, A는 실행에 실행시 사용자의 B 정체성이다.

SUID 설정 UID이 짧고, 번역 실행 비트 파일 소유자 권한에 나타나는 사용자 ID를 설정하는 것입니다, 파일 권한이 실행시이있을 것이다, 발신자는 일시적으로 파일의 소유자의 허가를 받아야 . 예를 들어, 다음 명령을 사용하여

[root@localhost ~]# ls -ld /usr/bin/passwd     #查询passwd命令
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

우리는 passwd에 프로그램이 SUID 권한이되도록, 대신에 실행 비트 파일 소유자의 X의이야가 볼 수 있습니다. 우리는 사용자가 자신의 암호를 마우스 오른쪽 권리를 언급 할 필요가 달라 말할 수 없기 때문에 passwd 명령을 사용할 때 우리는 사용자의 암호를 수정이는 SUID 권한 passwd 명령으로 시스템 기본입니까?

우리는 모두 암호 등 / 그림자 /에 저장됩니다 알고 있지만, 파일이 루트 만 쓸 수 있기 때문에 일반 사용자는 우리가 그것을 위해 새 암호를 작성하는 방법입니까? 이 SUID와 관련, 우리는 소유자의 권한이 루트 얻기 위해 passwd 명령의 passwd 파일을 사용하고 섀도 파일에 쓸 수있을 때.

SUID 기능 :
이진 파일에 대한 1.SUID 유효,
실행력을 가지고 2. 파일의 발신자, 즉, "X"권한입니다 (은 / usr / 빈 / passwd 파일 등)
구현 프로세스 3. 발신자는 일시적으로 될 것입니다 파일 얻기 위해 소유자 권한
4.이 권한은 프로그램 실행 중에 만 유효

아래의 표는 선명한 SUID의 효과를 나타낸다 :

리눅스의 권한 설정 (기본 권한, 숨겨진 특권과 특별한 권리)

2, SGID 역할

파일에 나타납니다 약어 SGID 설정 GID는, 그것의 일반적인 바이너리 파일과 디렉토리가 유효, 권한 위에 비트를 실행 그룹에 속한다. 이 일반 파일에 작용하고, 파일의 구현에, SUID 유사한 경우, 사용자는 파일 권한이 속한 얻을 것이다. SGID 디렉토리에 따라 행동 할 때, 의미는 매우 중요하다. 사용자가 작성하고 디렉토리에 대한 사용 권한을 실행하면 디렉토리가 특별한 권한 SGID가있는 경우이 디렉토리가 속한 사용자는 디렉토리에이 디렉토리에 생성 한 사용자가 속한 파일을 파일을 만들 수 있습니다 그룹.

SGID 기능 :
1, SGID 바이너리 프로그램, 파일 또는 디렉토리는 효과가,
2가, 프로그램 집행 프로그램에 대한 필요성이 갖고 "X"권한,
3, 구현은 구현 과정에서 프로그램 그룹을 받게됩니다 지원;

3 SBIT

SBIT 그 스티커 비트, 그것은 다른 사용자 권한의 실행에 나타납니다, 그것은 단지 디렉토리에 설정할 수 있습니다. 하나 SBIT 디렉토리 권한이있는 경우,이 디렉토리의 모든 사용자 파일을 만들 수 있습니다, 사용자가 만든이 디렉토리에있는 파일은 루트 사용자 만이 자신과 다른 사용자가 없습니다 삭제할 ​​수 있습니다. / tmp 역시 좋은 예는 같은 것입니다 :

[lv@localhost tmp]$ touch a.txt    #用户“lv”在tmp目录下创建一个文件
[lv@localhost tmp]$ ls -ld /tmp    
#确认/tmp目录的权限为777,并且有“t”权限
drwxrwxrwt. 16 root root 4096 8月  13 16:27 /tmp
[lv@localhost tmp]$ chmod 777 a.txt    #将新建的文件改为777权限
[lv@localhost tmp]$ ls -ld a.txt    #确认一下
-rwxrwxrwx 1 lv lv 0 8月  13 16:27 a.txt
#至此,在一般目录下,所有人都可以删除这个a.txt文件了
#但由于/tmp目录有“t”的特殊权限,所以并不可以,来验证一下
[lv@localhost tmp]$ su lvjianzhao  #切换至另一个用户
密码:
[lvjianzhao@localhost tmp]$ rm -rf a.txt     #进行强制删除,会提示以下
rm: 无法删除"a.txt": 不允许的操作

이 SBIT 역할입니다.

우리는 chmod 명령을 사용하는 두 가지가 있습니다 SUID, SGID 및 SBIT을 수정, chmod를이 일반적인 권한을 수정하실 수 있습니다, 또는 당신은이 세 가지 특별한 권한을 수정할 수 있습니다,

이 세 가지 특별한 권한은 권한 수치에 해당 :
SUID 4 =.
SGID = 2
sbit 1 =.

예를 들어, 당신은 당신이 할 수있는 다음과 같은 두 가지 명령 중 하나를 수행 한 후, / tmp 디렉토리에 대한 사용 권한에게 sbit를주고 싶다 :

[root@localhost /]# chmod o+t /tmp
                                   或
[root@localhost /]# chmod 1777 /tmp   #其中权限数字中的第一位就是特殊权限位

참고 : U를 = 사용자; g = 그룹을, O = 다른 사람을, 일반적으로 디지털 저작권의 방법, 편리한 사용 권한을 수정하는 것이 좋습니다! ! !

사용 예 :

[root@localhost /]# chmod o-t /tmp  #将/tmp目录去掉“t”的权限
[root@localhost /]# ls -ld /tmp    #查看,“t”的权限没有了,刚才的a.txt谁也可以删除了
drwxrwxrwx. 16 root root 4096 8月  13 16:30 /tmp
[root@localhost /]# chmod 1777 /tmp   #使用数字权限加上“t”的权限
[root@localhost /]# ls -ld /tmp
drwxrwxrwt. 16 root root 4096 8月  13 16:30 /tmp

추천

출처blog.51cto.com/14154700/2429203