2009-08-24 2 views
3

저는 현재 사내 프로그램을위한 데비안 패키지 작업을하고 있습니다. 이 패키지의 일부로 프로그램의 대부분의 기능을 실행하는 사용자를 만들어야합니다. 나는 postinst 스크립트에서 이것을하고있다. postinst 스크립트는 여러 번 (예 : 업그레이드) 실행할 수 있으므로 매번 사용자를 만들지 않으려는 것이 중요합니다.데비안 GNU/리눅스 시스템에 사용자 존재 보장하기

그렇다면 나중에 스크립트를 실행할 때 영향을주지 않고 스크립트가 처음 실행될 때만 사용자를 만들 수 있도록하려면 어떻게해야합니까?

답변

9

시도 :

[[email protected] ~]$ id aiden 
uid=500(aiden) gid=500(aiden) groups=500(aiden) 
[[email protected] ~]$ id foomonkey 
id: foomonkey: No such user 
[[email protected] ~]$ 

첫 번째 $?가 0이, 두 번째는 당신은 사용자가 존재하는지 여부를 알 필요가 없습니다 1.

2

입니다. 사용자가 이미 동일한 매개 변수를 가지고있는 경우 adduser (8)는 오류를 반환하지 않습니다. 남자 페이지에서 :

당신이 시스템의 모든 사용자가 사용할 수있는 얻을 같은 경우는 'ID'명령을 사용하기 전에 했나요로
EXIT VALUES 
     0  The user exists as specified. This can have 2 causes: The user 
       was created by adduser or the user was already present on the 
       system before adduser was invoked. Invoking adduser a second 
       time with the same parameters as before also returns 0. 
1

:

getent passwd 

것은 모두 나열 할 시스템에있는 사용자 (ldap 또는 nis 등의 원격 데이터베이스에 있더라도 ...)

+0

좋은 대답. 아마도 id보다 강력 할거예요. –

관련 문제