한 사용자의 파일을 다른 사용자에게 제한하는 방법

한 사용자의 파일을 다른 사용자에게 제한하는 방법

내 컴퓨터에 사용자 계정이 있습니다. 내 질문은 사용자 파일에 대한 액세스를 제한하는 방법입니다. 이는 다른 사람이 내 파일에 전혀 액세스할 수 없음을 의미합니다. 이 한도를 어떻게 설정하나요?

Linux 시스템에는 몇 명의 루트 사용자가 있을 수 있습니까?

편집하다: 나는 내 시스템의 사용자 중 한 명입니다. TOM(실제로 내 시스템에는 두 명의 사용자가 있습니다 TOM. ) 모든 패키지를 JERRY설치했습니다.
root

yum install <package name>

한계:TOM다른 누구도 사용자에 포함된 내 패키지와 파일에 액세스할 수 없습니다.

답변1

파일에 대한 액세스를 제한하는 일반적인 방법은 홈 디렉터리에 대한 권한을 갖거나 chmod 700(홈 디렉터리의 그룹 소유자가 다른 사람과 공유되는 경우) chmod 770다른 사람이 구성원이 아닌 "자신의" 그룹이 있는 경우입니다.

root사용자(uid 0)는 항상 이러한 파일에 액세스할 수 있습니다.

name이라는 이름의 사용자는 하나만 있을 수 있지만 rootuid 0과 연결된 이름은 여러 개 있을 수 있으므로 루트 권한을 가진 사용자가 여러 명 있을 수 있습니다.

다른 사람이 귀하의 홈 디렉토리가 있는 컴퓨터에 대한 루트 액세스 권한을 갖고 있는 경우 암호화된 형식이 아닌 한 중요한 정보를 거기에 보관해서는 안 됩니다(단, 암호화는 다른 시스템에서 수행되어야 함).

답변2

"액세스" 사용은 읽기/쓰기/삭제 등으로 더 자세히 설명될 수 있습니다. 끈끈한 비트는 다른 사람을 제거하는 데 도움이 됩니다. @Anthon이 말한 대로 수행할 수 있습니다. 루트는 수퍼유저이므로 "민감한" 데이터를 보관하지 마십시오.

디렉토리에 고정 비트를 설정해 보셨나요? 나는 당신이 리눅스를 사용하고 있다고 가정합니다.

예를 들어http://www.thegeekstuff.com/2013/02/sticky-bit/여기에 있는 예는 귀하의 사례에 대해 설명이 필요하지 않습니다.

[https://serverfault.com/questions/10353/what-is-the-sticky-bit-in-unix-file-systems-when-is-it-used]

답변3

yumyum과 같은 일반 사용자 명령은 사용할 수 없으며 TOM, yum 명령은 루트 권한으로만 사용할 수 있습니다. yum으로 패키지를 설치하면 모든 사용자가 사용할 수 있습니다. 하지만 당신이 있다면tar다음과 같이 설치 디렉터리를 변경할 수 있습니다. (패키지가 GNU autotools를 사용하여 생성된 경우)

./configure --prefix=/home/myusername/bin
make; make install

/home/myusername/bin을 PATH변수에 넣으십시오. 이 솔루션을 사용하면 패키지가 myusername 사용자 이름으로 실행됩니다!

하지만 파일이바이너리 또는 txt 파일더 정확하게 보고 싶다면 적절한 권한을 설정하기만 하면 됩니다.프로그램을 작성하다특정 경우에만 작동하며 UID읽기 USERNAME전용이므로 UID 변수를 간단히 확인할 수 있고 신뢰할 수 있습니다. 아래 스크립트를 보고 check.sh 파일에 넣으세요: (저는 Unix & Linux 포럼이기 때문에 SHELLSCRIPT를 썼습니다)

#!/bin/bash

COUNTER=0
FLAG=0
declare -r MYUID=500
declare -r USNAME=Sepahrad

for i in `cut -d: -f3 /etc/passwd`
do
    COUNTER=$(( COUNTER + 1 ))
    [ $i -eq $MYUID ] && TMP=$(head -n`echo $COUNTER` /etc/passwd | tail -n1 | cut -d: -f1) && [ "$TMP" == "$USER" ] && [ $MYUID -eq $UID ] &&  FLAG=1
done

if [ $FLAG -eq 1 ]
then

    echo "Hello $USNAME ($UID)"
elif [ $FLAG -eq 0 ]
then
    echo "You don't have permission to see thi file $USER ($UID)"; exit 1
fi

이 스크립트는 UID=500 및 Sepahrad 사용자 이름을 가진 사용자에 대해서만 실행됩니다. (편집기를 통해 변경할 수 있습니다.) 하지만 루트 사용자라도 소스 코드를 보는 것을 원하지 않으면 shc다음과 같은 명령을 사용하여 컴파일할 수 있습니다.shc -v -r -T check.sh

관련 정보