-bash: /dev/null: 권한이 거부되었습니다.

-bash: /dev/null: 권한이 거부되었습니다.

Centos 6 시스템에서 새 사용자를 생성하려고 합니다.

우선, 나는

useradd kevin

그런 다음 해당 사용자로 명령을 실행해 보았습니다.

su - kevin

그러나 다음과 같은 오류 메시지가 나타납니다.

-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
[kevin@gazelle ~]$

나는 그 사용자처럼 많은 일을 할 수 없습니다.

그 권한은 /dev/null다음과 같습니다:

-rwxr-xr-x  1 root root           9 Jul 25 17:07 null

내 Mac과 거의 동일합니다.

crw-rw-rw-   1 root   wheel         3,   2 Jul 25 14:08 null

그것은가능한, 하지만 실제로 그럴 가능성은 거의 없습니다. 개발자에게 문의했습니다.

kevin루트 사용자로서 그룹 에 추가하려고 합니다 root.

usermod -a -G root kevin

하지만 여전히 /dev/null권한 거부 오류가 발생합니다.

신규 사용자는 왜 글을 쓸 수 없나요 /dev/null?
새로운 사용자는 어떤 그룹에 속해야 합니까?
내가 사용자를 올바르게 사칭하고 있는 것이 아닌가요?
Linux에서 사용자/권한 설정에 대한 초보자 가이드가 있습니까?

답변1

분명히 누군가 일반 파일을 /dev/null로 옮겼습니다. 다시 시작하면 다시 생성되거나 수행됩니다.

rm -f /dev/null; mknod -m 666 /dev/null c 1 3

@Flow가 댓글에서 지적했듯이 root이렇게 해야 합니다.

1다음은 3Linux 기반 운영 체제의 장치 메이저 및 마이너 번호입니다(드라이버가 처리하는 세 번째 장치 , mem참조 /proc/devices) . 운영 체제마다 다릅니다. 예를 들어 ,cat /sys/devices/virtual/mem/null/devreadlink /sys/dev/char/1:322 OpenBSD에서그리고AIX, 특정 운영 체제에서 항상 동일하지는 않을 수 있습니다. 일부 운영 체제에서는 다시 생성하는 데 도움이 되는 makedev/ MAKEDEV명령을 제공할 수 있습니다.

답변2

이것은 트릭을 수행해야 합니다(루트로서):

rm /dev/null
mknod /dev/null c 1 3
chmod 666 /dev/null

이 명령이 수행하는 작업은 다음과 같습니다.

  • rm예상 파일 누락으로 인해 생성된 가짜 파일 제거
  • mknod/dev/nullLinux 커널에 적합한 메이저 및 마이너 번호로 명명된 문자 장치 생성
  • chmod모든 사용자에게 읽기 및 쓰기 권한을 설정합니다 /dev/null.

답변3

Mark가 제안한 솔루션은 OpenBSD에서 작동하지 않습니다. 하지만

mknod -m 666 /dev/null c 2 2

효과가 있었습니다. OpenBSD 5.6에서 이것을 테스트했습니다. 허용된 답변이 실행되면 /dev/null해당 답변에서 읽은 코드가 매우 심각하게 차단되고 중단됩니다.

OpenBSD(포함)에서 모든 표준 장치를 다시 생성하려면 null루트로 다음을 사용해야 합니다:

cd /dev
./MAKEDEV std

답변4

IBM AIX 서버의 경우에도 동일한 작업을 수행했는데 작동 중입니다.

# rm /dev/null;mknod /dev/null c 2 2;chown root:system /dev/null;chmod 0666 /dev/null

# ls -l /dev/null
crw-rw-rw-    1 root     system        2,  2 Jul 10 22:18 /dev/null

관련 정보