내 컴퓨터에 사용자 계정이 있습니다. 내 질문은 사용자 파일에 대한 액세스를 제한하는 방법입니다. 이는 다른 사람이 내 파일에 전혀 액세스할 수 없음을 의미합니다. 이 한도를 어떻게 설정하나요?
Linux 시스템에는 몇 명의 루트 사용자가 있을 수 있습니까?
편집하다:
나는 내 시스템의 사용자 중 한 명입니다. TOM
(실제로 내 시스템에는 두 명의 사용자가 있습니다 TOM
. ) 모든 패키지를 JERRY
설치했습니다.root
yum install <package name>
한계:TOM
다른 누구도 사용자에 포함된 내 패키지와 파일에 액세스할 수 없습니다.
답변1
파일에 대한 액세스를 제한하는 일반적인 방법은 홈 디렉터리에 대한 권한을 갖거나 chmod 700
(홈 디렉터리의 그룹 소유자가 다른 사람과 공유되는 경우) chmod 770
다른 사람이 구성원이 아닌 "자신의" 그룹이 있는 경우입니다.
root
사용자(uid 0)는 항상 이러한 파일에 액세스할 수 있습니다.
name이라는 이름의 사용자는 하나만 있을 수 있지만 root
uid 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
yum
yum과 같은 일반 사용자 명령은 사용할 수 없으며 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