becool

20210412 (월) 본문

linux

20210412 (월)

gusalstm 2021. 4. 12. 16:55
반응형

09:31 homework, review

 

$ useradd -m -d [HOME] [USERNAME]

 

$ useradd -D [option]

신규 사용자 정보파일

[root@localhost home]# cat /etc/default/useradd  → useradd -D 에서 똑같은 내용 출력
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

옵션 설명
-b DIR 사용자의 홈디렉터리 위치 경로 설정
-e EXPIRE 계정 만료일 ( etc/shadow )
yyyy-mm-dd (2021-04-12) 
-g GID 생성 시 자동으로 생성/소속되는 기본그룹* ※
-s SHELL 사용자의 기본 쉘 지정

* ※ /etc/login.defs 에 USERGROUP_ENAB no 인 상태에서 가능. yes로 되어있으면 자동으로 자기그룹을 생성함.

 

 

신규 사용자 홈디렉터리 정보파일 /etc/skel/

$ ls -l /etc/skel/

useradd -d 할때, 홈디렉터리를 /etc/login.defs에서 자동생성되지 않게 해놨다면 

① /etc/skel/ 에서 파일과 디렉터리를 복사해오고 

② 폴더의 chown [유저] [홈디렉터리] 으로 수정

③ 폴더 내 파일 및 디렉터리를 chmod 700 [FILE&DIRECTORY] 하여 권한을 수정하여 준다

 

usermod -L [user]

계정 잠금

잠금된 상태이면 /etc/shadow 에 암호필드 부분이 !로 표시되어있다.

usermod -U [user]

계정 잠금해제

 

 

===========================================

 

/etc/shadow
  USER:PW:LASTCHANGE:MIN:MAX:WARN:INACTIVE:EXPIRE:BLANK
   LASTCHANGE : 패스워드 변경일
   MIN : 패스워드 최소 사용기간
   MAX : 패스워드 최대 사용기간
   WARN : 패스워드 만료 전 변경 유도기간
   INACTIVE : 패스워드 만료일 경과후 일정 기간 내의 패스워드 변경기간 
   EXPIRE : 계정 만료일


chage
  $ chage   [option]   USER
    옵션         설명 
     -l            패스워드/계정 정책 확인
  -d  NUM     LASTCHANGE 값 변경
  -m  NUM    패스워드 최소 사용기간 지정
  -M  NUM    패스워드 최대 사용기간 지정
  -W  NUM    패스워드 만료 전 변경 안내 기간
  -I    NUM    패스워드 만료 후 패스워드 변경 기간 지정
 -E YYYY-mm-dd   계정 만료일 지정

 

 

===========================================

 

고급 권한 관리

특수 권한 파일에 미치는 영향 디렉터리에 미치는 영향
u+s(suid)4 파일은 파일을 실행한 사용자가 아니라 파일을 소유한 사용자 권한으로 실행된다. X
g+s(sgid)2 파일은 파일을 소유한 그룹 권한으로 실행된다. 디렉터리에 새로 생성된 파일에는 디렉터리의 그룹 소유자와 일치하는 그룹 소유자가 설정되어 있다.
o+t(stickybit)1 X 디렉터리에 대한 쓰기 권한을 가진 사용자는 자신이 소유한 파일만 제거할 수 있다. 다른 사용자가 소유한 파일을 제거하거나 강제로 저장할 수 없다.

 

 

파일 소유권

 chown [OPTION] [USER] [:GROUP] FILE

 $ chown USER FILE

 $ chown :GROUP FILE

 $ chown USER:GROUP FILE

 

SetUID(4) : 파일의 소유자의 권한으로 실행하는 확장권한

SetGID(2) : 파일의 소유그룹의 권한으로 실행하는 확장권한

Stickybit(1) : 다른 사용자가 생성한 파일을 삭제할 수 없도록 하는 확장권한

[root@localhost setgiddir]# chmod 4755 file
[root@localhost setgiddir]# chmod 2755 file

 

[root@localhost dir1]# chmod 777 sharedir/

 --> 권한 부여된 파일에 다른사용자가 삭제할 수 있음.

 

[root@localhost dir1]# chmod 1777 stickytest/

[root@localhost dir1]# ls -ld stickytest/
drwxrwxrwt. 2 root root 165 Apr 12 12:25 stickytest/

[test01@localhost stickytest]$ rm rootfile2
rm: remove write-protected regular file ‘rootfile2’? y
rm: cannot remove ‘rootfile2’: Operation not permitted → 스티키비트가 설정된 디렉터리에서는 삭제 불가.

 

8진법 뿐만 아니라 아래와 같이 심볼릭 명령도 가능하다.

[root@localhost dir1]# chmod u+s tail2
[root@localhost dir1]# chmod g+s tail3
root@localhost dir1]# chmod o+t testdir2/
[root@localhost dir1]# ls -l
-r--r--r--. 1 root root 66824 Apr 12 12:05 tail1
-r-Sr--r--. 1 root root 66824 Apr 12 12:05 tail2
-r--r-Sr--. 1 root root 66824 Apr 12 12:05 tail3
drwxrwxrwt. 2 root root     6 Apr 12 13:03 testdir2

 

=========================================

POSIX ACL

# getfacl [FILE]

# getfacl .

 

# setfacl [option] [FILE]

# setfacl -m g::perms file

 u::PERMS   소유자

 u:USER:PERMS   특정사용자

 g::PERMS   소유그룹

 g:GROUP:PERMS   특정그룹

 o::PERMS   기타사용자

 

[root@localhost 20210412]# setfacl -m u:user03:rw aclfile1
[root@localhost 20210412]# getfacl aclfile1 
# file: aclfile1
# owner: root
# group: root
user::rw-
user:user03:rw-
group::r--
mask::rw-
other::r--
[root@localhost 20210412]# ls -l
total 4
-rw-rw-r--+ 1 root   root   52 Apr 12 15:07 aclfile1

 10자 권한 문자열 끝에 있는 더하기 기호(+)는 이 파일에 항목을 포함하는 확장 ACL 구조가 있음을 나타낸다.

 

마스크 설정은 특정 사용자, 그룹 소유자, 특정 그룹에 부여가능한 최대권한을 표시한다. 각 항목에 실행 권한이 설정되어 있는 경우에도 UID 1005, operators, GID 2210 은 이 파일을 실행할 수 없다.

 

파일 또는 디렉터리에 ACL 마스크를 명시적으로 설정하여 특정 사용자, 그룹 소유자, 특정 그룹의 최대 유효권한을 제한할 수 있다. 이렇게 하면 마스크를 초과하는 기존 권한이 제한되지만 마스크보다 낮은 권한은 영향을 받지 않는다.

[user01@localhost 20210412]$ setfacl -m m::r user01file1

기존 설정과 상관없이 특정 사용자, 그룹소유자, 특정 그룹을 읽기 전용 권한으로 제한하는 마스크 값을 추가한다. 파일 소유자 및 기타사용자는 마스크 설정의 영향을 받지 않는다.

 

 

effective 구하는 법

user + mask AND연산 : rw- + r-x = r--

user04 + mask AND연산 : rwx + r-x = r-x

 

[user01@localhost 20210412]$ getfacl user01file2
# file: user01file2
# owner: user01
# group: users
user::rw-
user:user:rw- #effective:r--
user:user03:r--
user:user04:rwx #effective:r-x
group::r--
mask::r-x
other::r--

 

728x90

'linux' 카테고리의 다른 글

date 표현  (0) 2021.04.14
20210413 (화)  (0) 2021.04.13
20210409 (금)  (0) 2021.04.09
20210408 (목)  (0) 2021.04.08
20210407 (수) -NEW  (0) 2021.04.07
Comments