>

사용자가 사용 중이더라도 usermod가 암호/그룹/... 파일을 수정하도록하는 방법을 찾고있었습니다.

지금 내가 얻는 것은 이것입니다 :

!! Failed to execute 'usermod --home '...' --password '...' --shell '/bin/false' 'zabbix' 2>&1':
usermod: user zabbix is currently used by process 518

보안을 위해 서비스를 다시 시작해야한다는 것을 알고 있습니다. 그러나 이것은 설정 스크립트 내에서 수행됩니다. 마지막에 모든 서비스를 다시 시작하고 있습니다.

--force라고 말할 방법이 있습니까? (필요한 모든 파일을 수정 한 경우는 제외)

감사합니다

  • 답변 # 1

    sudo를 통해 루트 권한을 얻을 수 있고 vi를 사용하여 시스템 파일을 변경하기에 충분한 확신이 있다면 파일을 수동으로 변경합니다.

    몇 가지만 변경해야합니다

    - /etc/passwd
      here you could change UID, GID, Homedirectory, Shell ...
    - /etc/group
      here you might need to change UID/GID as well for the username if there was a change
    
    

    passwd를 사용하여 새 비밀번호를 설정하면 파일/etc/shadow가 자동으로 변경됩니다. 루트 인 경우 직접 수행 할 수 있습니다 : "passwd username"

  • 답변 # 2

    usermod 를 실행할 수 있습니다  별도의 사용자 네임 스페이스 (최근 충분한 Linux가 있음)에서 루트 사용자를 루트에 매핑해야합니다 (그렇지 않으면 /etc/passwd 를 수정할 권한이 없습니다) ).

    즉 이런 식으로 :

    unshare --user --map-root-user usermod ...
    
    

    이제 usermod는 수정하려는 사용자의 uid로 실행되는 프로세스를 찾지 못합니다.

    아직 루트 사용자 자체를 수정하지 못할 수도 있습니다.

관련 자료

  • 이전 php - 클래스 메소드 리턴 값에 대한 올바른 주석
  • 다음 javascript - 3면 JS에 삼각형을 그리는 방법?