w 명령은 사용자에게 안전한가요?

w 명령은 사용자에게 안전한가요?

일부 응용 프로그램에서는 암호를 인수로 전달할 수 있습니다. 예를 들어:

mysql --user=user_name --password=your_password db_name

안전 해요? 입력한 비밀번호가 bash 기록에 저장된다는 사실 외에도 누군가 w적절한 순간에 명령을 입력하면 프로세스의 전체 명령줄(비밀번호 포함)을 볼 수 있습니다.

모든 사용자가 내가 현재 실행 중인 명령을 볼 수 있다는 것이 나에게는 매우 놀랍습니다.

답변1

시스템의 모든 프로세스에 대한 명령줄 인수는 "공개"로 간주됩니다. w명령 뿐만 아니라 다른 많은 명령 pstop당연히 해당 정보에 액세스합니다. 실제로 해당 정보를 얻으려면 특별한 권한이 필요하지 않습니다. Linux에서는 를 읽어서 다른 프로세스, 심지어 다른 사용자에게 속한 프로세스의 명령줄을 읽을 수 있습니다 /proc/<pid>/cmdline.

w이는 또는 top또는 ps(또는 ) 부분의 결함이나 안전하지 않은 동작이 아닙니다 cat. 오히려 다중 사용자 시스템의 명령줄에서 민감한 정보를 절대 전달하지 않는 것이 책임입니다.

명령줄 문서에서 암호를 허용하는 기능이 있는 대부분의 유틸리티는 이를 권장하지 않습니다. 예를 들어 의 mysql맨페이지 에서 :

명령줄에서 비밀번호를 지정하는 것은 안전하지 않은 것으로 간주됩니다. 섹션 5.3.2.2, "비밀번호 보안에 대한 최종 사용자 지침"을 참조하십시오. 옵션 파일을 사용하면 명령줄에 비밀번호를 입력하지 않아도 됩니다.

그건 그렇고, 환경 변수에 비밀번호나 민감한 데이터를 전달하는 것은 노골적으로 안전하지 않지만 대부분의 시스템에서는 실제로 안전하지 않습니다.

답변2

아니요, 명령줄에서 프로그램에 비밀번호를 전달하는 것은 안전하지 않습니다. 다음을 사용하는 것이 더 좋습니다:

mohsen@debian:~$ mysql -uuser -p
Enter password: 

답변3

안전하지는 않지만 요즘 Linux는 20대 초반이라는 점을 기억하십시오. IT의 다른 것들과 마찬가지로 보안에 대한 의미도 그 당시에는 명확하지 않았거나 나중에 다루어지지 않았습니다.

따라서 다른 답변에서 언급했듯이 명령줄에서 비밀번호를 사용하지 마십시오.

procfs with themountring hidepid` 옵션이나 다음을 사용하여 제공되는 정보를 제한할 수도 있습니다.보안강화된 커널. 적어도 이 글을 쓰는 시점에는 이로 인해 일부 항목(아마도 cgroup 및 이에 의존하는 모든 항목(예: systemd))이 손상될 수 있습니다.

관련 정보