본문 바로가기
개발/linux

linux chown chmod (setuid, setgid, sticky bit, mode format) 사용법, 설명, 차이

by amkorousagi 2022. 10. 21.

linux chown chmod

사용하는 이유

파일의 소유주를 변경하기위해

파일의 권한을 변경하기 위해

배경지식 - linux의 파일 정보 16bit

file의 종류는 16bit 중 4bit로 표현하고,

file의 권한은 16bit 중 12bit로 표현된다.

 

- 3bit는 특수권한(setuid, setguid, sticky bit)

- 3bit는 user(owner) 권한

- 3bit는 group 권한

- 3bit는 other(owner나 group이 아닌 user) 권한을 위해 존재한다.

(16 = 4 + 3*4)

chown 사용법

chown <owner> <file>
chown <owner>:<group> <file>

chown root /u # /u 디렉터리의 owner를 root로
chown root:staff /u # /u 디렉터리의 owner를 root로 group을 staff로

chown <owner> <file 1> <file 2> ... <file n>
chown <owner>:<group> <file 1> <file 2> ... <file n>

chown 옵션

chown -R root /u # /u와 그 하위 파일 모두의 owner를 root로(재귀적으로 적용)
chown -h root <symbolic link> # 심볼릭링크 자체의 owner를 root로 변경
chown root <symbolic link> # 심볼릭링크가 참조하는 대상에 대하여 onwer를 root로 변경
chown --reference <file for reference of own/group> <file> # owner와 group를 직접 지정하는 대신 --reference뒤 파일의 것을 따름

-R : --recursive, 해당 디렉터리의 하위 파일에 대해서도 재귀적으로 chown 적용

-h : --no-dereference, 역참조를 하지 않음. 심볼릭 링크 자체에 대하여 chown 적용(원래 기본값은 역참조를 하는 것)

--from <owner>:<group> : file의 owner, group이 일치하는 경우에만 chown 적용. 둘 중 하나는 생략 가능

-f : 대부분의 에러 메시지를 무시함

-v : 진행된 모든 파일의 결과를 출력

--reference <file for reference of owner/group>: onwer와 group 직접 지정하지 않고 --reference 뒤에 오는 파일의 owner와 group으로 chown 적용

chmod 사용법

chmod <mode> <file>
chmod --reference <file for reference of mode> <file>

chmod ug+rwx myfile
chmod 0770 myfile
chmod --reference myrefer myfile

chmod <mode> <file 1> <file 2> ... <file n>
chmod --reference <file for reference of mode> <file 1> <file 2> ... <file n>

--reference : onwer와 group 직접 지정하지 않고 --reference 뒤에 오는 파일의 owner와 group으로 chmod 적용

chmod의 mode format - symbolic mode

[ugoa...][[+-=][perms...]...]

ugoa : 사용자 지정

u : user who owns it, owner 소유주

g : group 그룹

o : other 위 둘을 제외한 다른 모든 이

a : all 모두

 

+-= : 연산 지정

+ : 해당 파일의 권한에 지정한 권한을 더하겠다

- : 해당 파일의 권한에서 지정한 권한을 빼겠다

= : 해당 파일의 권한을 지정한 권한으로 할당하겠다 (지정하지 않은 다른 모든 권한은 제거됨)

 

perms : 권한 지정

r : read 읽기

w : write 수정

x : execute 실행

X : 대상 파일의 권한에서 ugo 중 적어도 하나라도 execute가 가능한 경우 또는 디렉터리인 경우, execute 권한 부여.

특별한 경우에 사용하는 perms

s :

 대상이 파일이며, 사용자 지정이 u라면 setuid 비트, 사용자 지정이 g라면 setgui 비트를 flag 한다. 설령, 현재 사용자가 실행 권한이 없는 파일이라도 실행 시에만 일시적으로 해당 owner나 group의 권한으로 파일을 실행할 수 있도록(processor의 euid나 egid를 실제 사용자(ruid)나 실제 그룹(rguid)이 아니라 해당 owner나 group으로 set) 해준다.(root 권한 상승 등에 쓰인다.)

 

 대상이 디렉터리이며 setgui 비트를 flag 한다면, 해당 디렉터리 아래에서 create 하는 파일이나 디렉터리의 group을 해당 디렉터리의 group으로 설정한다.(create 한 user가 속한 group이 아니라)

 

t :

 sticky 비트를 flag 한다. stick bit는 최종 결정권을 갖는다.

 

 대상이 파일인 경우, 더 이상 사용하지 않는 옵션이다(이전에 스와핑 최소화를 위해 쓰였다)

 

 대상이 디렉터리인 경우,

1. 디렉터리 소유자

2. 파일 소유자

3. 루트 사용자

만이 파일의 이름을 바꾸거나 삭제할 수 있다.

쓰기 및 실행 권한이 있는 사용자(other에 쓰기 및 실행 권한을 부여한 경우)는 sticky bit가 없을 때만 파일의 이름을 바꾸거나 삭제할 수 있다.

/tmp 디렉터리처럼 공유 디렉터리에 설정되어 있다.

다수의 사용자가 사용하는 디렉터리에서 타 사용자의 파일을 함부로 삭제하지 못하기 위해 있는 기능이다.

 

chmod의 mode format - octal digits

위에서 각 3bit가 각 사용자에 대한 권한을 나타낸다고 했다.

3bit는 8진수로 나타낼 수 있다.

특수 권한 user(owner) 권한 group 권한 other 권한
001 = 1 sticky bit 001 = 1 excute 001 = 1 excute 001 = 1 excute
010 = 2 setgid 010 = 2 write 010 = 2 write 010 = 2 write
100 = 4 setuid 100 = 4 read 100 = 4 read 100 = 4 read

즉, 위 표를 참조해 8진수 4자리로 권한 정보를 표현할 있다.

예) 000 111 111 111 = 0777

chmod 옵션

chmod -R <mode> <file>

-R : --recursive, 해당 디렉터리의 하위 파일에 대해서도 재귀적으로 chmod 적용

 

chown chmod 차이

chown : 파일의 소유주를 변경 (change owner)

chmod : 파일의 권한을 변경 (chnage mode)

linux man page 설명

chown - change file owner and group
chmod - change file mode bits

 

 

출처:

 

 

chown(1): change file owner/group - Linux man page

chown(1) - Linux man page Name chown - change file owner and group Synopsis chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE... Description This manual page documents the GNU version of chown. chown changes the user and/

linux.die.net

 

chmod(1): change file mode bits - Linux man page

chmod(1) - Linux man page Name chmod - change file mode bits Synopsis chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE... Description This manual page documents the GNU version of chmod.

linux.die.net

 

setuid - Wikipedia

Unix access rights flag "SGID" redirects here. For the company which briefly used this stock ticker symbol, see Silicon Graphics. The Unix access rights flags setuid and setgid (short for "set user ID" and "set group ID")[1] allow users to run an executabl

en.wikipedia.org

 

Using a symbolic mode to specify permissions

A symbolic mode has the form: [who] op permission [op permission …] The who value is optional; it can be any combination of the following: u Sets owner (user) permissions. g Sets group permissions. o Sets other permissions. a Sets all permissions; this i

www.ibm.com

 

Temporarily changing the user ID or group ID during execution

An executable file can have an additional attribute, which is displayed in the execute position (x) when you issue ls -l. This permission setting is used to allow a program temporary access to files that are not normally accessible to other users. An s or

www.ibm.com

 

File-system permissions - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Allowed actions in file systems Most file systems include attributes of files and directories that control the ability of users to read, change, navigate, and execute the contents of t

en.wikipedia.org

 

'개발 > linux' 카테고리의 다른 글

linux grep 사용법, 설명  (0) 2022.10.21
linux stat 사용법, 설명  (0) 2022.10.21
linux mkdir 사용법, 설명  (0) 2022.10.21
linux cat tail head 사용법, 설명  (0) 2022.10.21
linux man help info 차이 비교  (0) 2022.10.21

댓글