이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 keyctl 명령입니다.
프로그램:
이름
keyctl - 키 관리 기능 제어
개요
키ctl --번역
키ctl 표시 [-x] [ ]
키ctl 추가하다
키ctl 패딩
키ctl 요구 [ ]
키ctl 요청2 [ ]
키ctl 프리퀘스트2 [ ]
키ctl 업데이트
키ctl 강아지
키ctl 뉴링
키ctl 취소
키ctl 분명한
키ctl 링크
키ctl 풀리다 [ ]
키ctl 찾다 [ ]
키ctl 읽다
키ctl 파이프
키ctl 인쇄
키ctl 목록
키ctl 목록
키ctl 설명하다
키ctl rdescribe [XNUMX월]
키ctl 차운
키ctl chgrp
키ctl 셋펌
키ctl new_session
키ctl 세션
키ctl 세션 - [ ...]
키ctl 세션 [ ...]
키ctl 인스턴스화
키ctl 정밀하게 하다
키ctl 부정하다
키ctl 거부하다
키ctl 타임아웃
키ctl 보안
키ctl 수확 [-v]
키ctl 숙청
키ctl 퍼지 [-i] [-p]
키ctl 퍼지 -s
키ctl get_persistent [ ]
기술
이 프로그램은 다음을 사용하여 다양한 방법으로 키 관리 기능을 제어하는 데 사용됩니다.
다양한 하위 명령.
KEY 식별자
keyctl에 전달되거나 keyctl에서 반환되는 키 식별자는 일반적으로 양의 정수입니다.
그러나 다음과 같이 전달될 수 있는 특별한 의미를 가진 몇 가지 특별한 값이 있습니다.
인수 :
(*) 키 없음: 0
(*) 스레드 키링: @t or -1
각 스레드는 자체 키링을 가질 수 있습니다. 이것은 다른 모든 것보다 먼저 검색됩니다. 그만큼
스레드 키링은 (v)fork, exec 및 clone으로 대체됩니다.
(*) 프로세스 키링: @p or -2
각 프로세스(스레드 그룹)에는 자체 키링이 있을 수 있습니다. 이것은 모든 구성원이 공유합니다.
스레드 키링 이후에 검색됩니다. 프로세스 키링이 교체됨
(v)fork 및 exec.
(*) 세션 키링: @s or -3
각 프로세스는 (v)fork, exec 및
클론. 프로세스 키링 이후에 검색됩니다. 세션 키링은 이름을 지정할 수 있으며
프로세스의 현재 세션 키링 대신 기존 키링을 결합할 수 있습니다.
(*) 사용자별 키링: @u or -4
이 키링은 특정 사용자가 소유한 모든 프로세스 간에 공유됩니다. 그렇지 않다
직접 검색되지만 일반적으로 세션 키링에서 연결됩니다.
(*) 사용자 기본 세션 키링: @우리를 or -5
이것은 특정 사용자에 대한 기본 세션 키링입니다. 다음으로 변경되는 로그인 프로세스
특정 사용자는 다른 세션이 설정될 때까지 이 세션에 바인딩됩니다.
(*) 그룹별 키링: @g or -6
그룹별 키링에 대한 자리 표시자이지만 실제로는 아직 구현되지 않았습니다.
커널에서.
(*) 가정된 request_key 권한 부여 키: @a or -7
이는 request_key() 헬퍼에 제공된 권한 부여 키를 선택하여 다음을 허용합니다.
발신자 키링에 액세스하고 대상 키를 인스턴스화합니다.
(*) 이름별 키링: %:
명명된 키링입니다. 이것은 프로세스의 키링과 /proc/keys에서 검색됩니다.
(*) 이름별 키: % :
지정된 유형의 명명된 키입니다. 이것은 프로세스의 키링과
/프로시저/키.
COMMAND 통사론
전체 명령 대신 명령 이름의 모호하지 않은 축약형을 사용할 수 있습니다.
이름. 이 기능은 나중에 새 명령이 추가될 수 있으므로 스크립팅에 사용하면 안 됩니다.
그러면 모호성이 발생합니다.
(*) 디스플레이 전에, 꾸러미 버전 번호
키ctl --번역
이 명령은 패키지 버전 번호와 빌드 날짜를 인쇄하고 종료합니다.
테스트박스>keyctl --버전
keyutils-1.5.3의 keyctl(2011년 08월 24일 빌드)
(*) 쇼 방법 열쇠 고리
키ctl 표시 [-NS] [ ]
기본적으로 이 명령은 프로세스가 구독하고 있는 키링을 재귀적으로 보여줍니다.
그들이 포함하는 키와 키링. 키링이 지정된 경우 해당 키링은
대신 버렸습니다. 만약에 -x 이 지정되면 키링 ID가 대신 XNUMX진수로 덤프됩니다.
소수.
(*) 추가 a 키 에 a 열쇠 고리
키ctl 더하다
키ctl 패딩
이 명령은 지정된 유형 및 설명의 키를 생성합니다. 그것을 인스턴스화
주어진 데이터를 지정된 키링에 첨부합니다. 그런 다음 새 키의 ID를 인쇄합니다.
stdout :
testbox>keyctl 사용자 추가 mykey 물건 @u
26
The 패딩 명령의 변형은 stdin에서 데이터를 가져오는 대신 stdin에서 데이터를 읽습니다.
명령 줄 :
testbox>echo -n 물건 | keyctl padd 사용자 mykey @u
26
(*) 의뢰 a 키
키ctl 의뢰 [ ]
키ctl 요청2 [ ]
키ctl 사전 요청2 [ ]
이 세 가지 명령은 주어진 유형 및 설명의 키 조회를 요청합니다. 그만큼
프로세스의 키링이 검색되고 일치하는 항목이 발견되면 일치하는 키의 ID가
stdout에 인쇄; 대상 키링이 제공되면 해당 키가 추가됩니다.
열쇠고리도.
키가 없으면 첫 번째 명령은 ENOKEY 오류를 반환하고 실패합니다. 그만큼
두 번째 및 세 번째 명령은 유형 및 설명이 포함된 부분 키를 생성하고
에게 전화 /sbin/요청 키 해당 키와 추가 정보가 제공됩니다. 이것은
그런 다음 유효한 키를 얻을 수 있도록 어떤 방식으로 키를 인스턴스화하려고 시도합니다.
세 번째 명령은 콜아웃 정보를 다음에서 읽는다는 점을 제외하면 두 번째 명령과 같습니다.
명령줄에서 전달되는 대신 stdin을 사용합니다.
유효한 키를 받으면 ID가 인쇄되고 원본처럼 키가 부착됩니다.
검색에 성공했습니다.
유효한 키를 얻지 못한 경우 임시 음수 키가
대상 키링이 주어지면 "요청된 키를 사용할 수 없음" 오류가 표시됩니다.
testbox>keyctl request2 사용자 디버그:hello wibble
23
testbox>echo -n 위블 | keyctl prequest2 사용자 디버그:hello
23
testbox>keyctl 사용자 디버그 요청:hello
23
(*) 업데이트 a 키
키ctl 최신 정보
키ctl 강아지
이 명령은 키에 연결된 데이터를 새로운 데이터 집합으로 바꿉니다. 의 유형인 경우
키가 업데이트를 지원하지 않으면 "지원되지 않는 작업" 오류가 반환됩니다.
testbox>keyctl 업데이트 23 얼룩말
The 강아지 명령의 변형은 stdin에서 데이터를 가져오는 대신 데이터를 읽습니다.
명령줄:
testbox>echo -n 얼룩말 | keyctl 업데이트 23
(*) 만들기 a 열쇠 고리
키ctl 뉴링
이 명령은 지정된 이름의 새 키링을 생성하고 이를 지정된
열쇠 고리. 성공하면 새 키링의 ID가 stdout에 인쇄됩니다.
testbox>keyctl newring squelch @us
27
(*) 취소 a 키
키ctl 취소
이 명령은 키를 해지된 것으로 표시합니다. 해당 키에 대한 추가 작업(별도
링크를 해제하면) "키가 해지되었습니다"라는 오류가 반환됩니다.
testbox>keyctl 철회 26
testbox>keyctl 설명 26
keyctl_describe: 키가 취소되었습니다.
(*) 초기화 a 열쇠 고리
키ctl 선명한
이 명령은 지정된 키링에 연결된 모든 키의 연결을 해제합니다. 오류 "아님
지정된 키가 키링이 아닌 경우 "디렉토리"가 반환됩니다.
testbox>keyctl 지우기 27
(*) (링크) a 키 에 a 열쇠 고리
키ctl 링크
이 명령은 충분한 용량이 있는 경우 키에서 키 링으로 링크를 만듭니다.
대상이 키링이 아닌 경우 "Not a directory" 오류가 반환됩니다. 오류
키에 링크 권한이 없거나
키링에 쓰기 권한이 없습니다. 다음과 같은 경우 "파일 테이블 오버플로" 오류가 반환됩니다.
키링이 가득 찼습니다. 시도한 경우 "자원 교착 상태 방지" 오류가 반환됩니다.
재귀 링크를 소개합니다.
테스트박스>keyctl 링크 23 27
테스트박스>keyctl 링크 27 27
keyctl_link: 리소스 교착 상태 방지
(*) 풀리다 a 키 에 a 열쇠 고리 or 전에, 세션 열쇠 고리 나무
키ctl 풀리다 [ ]
키링이 지정된 경우 이 명령은 키링에서 키에 대한 링크를 제거합니다.
대상이 키링이 아닌 경우 "Not a directory" 오류가 반환됩니다. 오류
키링에 쓰기 권한이 없으면 "권한 거부됨"이 반환됩니다. 오류
키가 키링으로 연결되지 않은 경우 "No such file or directory"가 반환됩니다.
키링이 지정되지 않은 경우 이 명령은 세션의 깊이 우선 검색을 수행합니다.
키링 트리에서 발견한 지명된 키에 대한 모든 링크를 제거합니다.
제거 허용). 종료하기 전에 성공적인 연결 해제 횟수를 인쇄합니다.
testbox>keyctl 링크 해제 23 27
(*) 검색 a 열쇠 고리
키ctl 수색 [ ]
이 명령은 특정 유형의 키에 대한 키링을 비재귀적으로 검색하고
설명. 발견되면 키의 ID가 stdout에 인쇄되고 키는
존재하는 경우 대상 키링에 첨부됩니다. "요청한 키를 사용할 수 없음" 오류가 발생합니다.
키를 찾을 수 없으면 반환됩니다.
testbox>keyctl 검색 @us 사용자 디버그:hello
23
testbox>keyctl 검색 @us 사용자 디버그:bye
keyctl_search: 요청된 키를 사용할 수 없음
(*) 읽기 a 키
키ctl 읽기
키ctl 파이프
키ctl 인쇄
이 명령은 키의 페이로드를 읽습니다. "read"는 stdout에 XNUMX진수 덤프로 인쇄합니다. "pipe"
원시 데이터를 stdout으로 덤프하고 "print"는 전체 데이터인 경우 stdout으로 직접 덤프합니다.
인쇄 가능하거나 그렇지 않은 경우 ":hex:"가 앞에 오는 hexdump로.
키 유형이 페이로드 읽기를 지원하지 않는 경우 "작업이
지원됨"이 반환됩니다.
testbox>keyctl 읽기 26
키의 1바이트 데이터:
62
테스트박스>keyctl 인쇄 26
b
테스트박스>keyctl 파이프 26
비테스트박스>
(*) 명부 a 열쇠 고리
키ctl 명부
키ctl 목록
이러한 명령은 키의 내용을 키링으로 나열합니다. "목록"은 내용을 예쁘게 인쇄합니다.
"rlist"는 공백으로 구분된 키 ID 목록을 생성합니다.
지정된 키링이 키링인지 확인하려고 시도하지 않습니다.
testbox>keyctl 목록 @us
키링에 있는 2개의 키:
22: vrwsl---------- 4043 -1 키링: _uid.4043
23: vrwsl---------- 4043 4043 사용자: 디버그:hello
테스트박스>keyctl rlist @us
22 23
(*) 설명 a 키
키ctl 설명
키ctl 설명하다 [XNUMX월]
이 명령은 키링에 대한 설명을 가져옵니다. "describe"는 설명을 예쁘게 출력합니다.
"list" 명령과 같은 방식으로; "rdescribe"는 다음에서 반환된 원시 데이터를 인쇄합니다.
커널.
testbox>keyctl 설명 @us
-5: vrwsl---------- 4043 -1 키링: _uid_ses.4043 testbox>keyctl
rdescribe @us keyring;4043;-1;3f1f0000;_uid_ses.4043
원시 문자열은 " ; ; ; ; ", 어디 UID 그리고 gid 있는
XNUMX진수 사용자 및 그룹 ID, 파마 XNUMX진수의 권한 마스크입니다. 유형 그리고 설명 are
유형 이름 및 설명 문자열(둘 다 세미콜론을 포함하지 않음).
(*) 변화 전에, ACCESS 컨트롤 on a 키
키ctl chown하지
키ctl 을 chgrp
이 두 명령은 키의 권한 평가와 관련된 UID 및 GID를 변경합니다.
마스크. UID는 또한 키가 제거되는 할당량을 관리합니다.
chown 명령은 현재 지원되지 않습니다. 시도하면 "작업
기껏해야 지원되지 않습니다.
수퍼유저가 아닌 사용자의 경우 GID는 프로세스의 GID 또는
프로세스의 그룹 목록. 수퍼유저는 원하는 GID를 설정할 수 있습니다.
testbox>sudo keyctl chown 27 0
keyctl_chown: 지원되지 않는 작업
테스트박스>sudo keyctl chgrp 27 0
(*) 세트 전에, 권한 마스크 on a 키
키ctl 셋펌
이 명령은 키의 권한 제어 마스크를 변경합니다. 마스크는 다음과 같이 지정할 수 있습니다.
"0x"로 시작하는 경우 0진수, "XNUMX"으로 시작하는 경우 XNUMX진수 또는 XNUMX진수
그렇지 않으면.
XNUMX진수는 다음의 조합입니다.
소유주 UID GID 기타 권한 부여됨
======== ======== ========== ======== ================
01000000 00010000 00000100 00000001 보기
02000000 00020000 00000200 00000002 읽기
04000000 00040000 00000400 00000004 쓰기
08000000 00080000 00000800 00000008 검색
10000000 00100000 00001000 00000010 링크
20000000 00200000 00002000 00000020 속성 설정
3f000000 003f0000 00003f00 0000003f 모두
관측 키의 유형, 설명 및 기타 매개변수를 볼 수 있습니다.
읽기 유형에서 지원하는 경우 페이로드(또는 키링 목록) 읽기를 허용합니다.
쓰다 페이로드(또는 키링 목록)를 수정하거나 업데이트할 수 있습니다.
검색 on a key는 연결된 키링을 검색할 때 찾을 수 있도록 허용합니다.
(링크) 키를 키링에 연결할 수 있습니다.
세트 속성 키가 소유자, 그룹 구성원, 권한 마스크 및
제한 시간이 변경되었습니다.
테스트박스>keyctl setperm 27 0x1f1f1f00
(*) 스타트 a 세션 과 신선한 열쇠 고리
키ctl 세션
키ctl 세션 - [ ...]
키ctl 세션 [ ...]
이 명령은 새 키링을 결합하거나 생성한 다음 다음을 사용하여 셸 또는 기타 프로그램을 실행합니다.
해당 키링을 세션 키로 사용합니다.
인수가 없는 변형은 익명 세션 키링을 생성하고 첨부합니다.
세션 키링으로; 그런 다음 exec의 $SHELL입니다.
이름 대신 대시가 있는 변형은 익명 세션 키링을 생성하고
세션 키링으로 첨부합니다. 그런 다음 exec는 제공된 명령이거나 $SHELL인 경우
하나는 제공되지 않습니다.
이름이 제공된 변형은 명명된 키링을 생성하거나 결합하고 다음과 같이 첨부합니다.
세션 키링; 그런 다음 exec는 제공된 명령이거나, 제공되지 않은 경우 $SHELL입니다.
testbox>keyctl rdescribe @s
keyring;4043;-1;3f1f0000;_uid_ses.4043
테스트박스>keyctl 세션
참가한 세션 키링: 28
testbox>keyctl rdescribe @s
keyring;4043;4043;3f1f0000;_ses.24082
testbox>keyctl 세션 -
참가한 세션 키링: 29
testbox>keyctl rdescribe @s
keyring;4043;4043;3f1f0000;_ses.24139
testbox>keyctl 세션 - keyctl rdescribe @s
참가한 세션 키링: 30
keyring;4043;4043;3f1f0000;_ses.24185
testbox>keyctl 세션 물고기
참가한 세션 키링: 34
testbox>keyctl rdescribe @s
keyring;4043;4043;3f1f0000;fish
testbox>keyctl 세션 물고기 keyctl rdesc @s
참가한 세션 키링: 35
keyring;4043;4043;3f1f0000;fish
(*) 인스턴스화 a 키
키ctl 인스턴스화
키ctl 정확한
키ctl 부정하다
키ctl 거부
이 명령은 부분적으로 설정된 키(커널에 의해 생성됨)에 데이터를 첨부하는 데 사용됩니다.
/sbin/request-key로 전달됨). "instantiate"는 키를 유효한 것으로 표시하고 첨부합니다.
데이터를 페이로드로. "부정" 및 "거부"는 키를 유효하지 않은 것으로 표시하고 시간 제한을 설정합니다.
잠시 후에 사라지도록. 이것은 많은 빠른 순차적
모든 후속 요청이 실패할 때 시스템 속도를 지나치게 저하시키는 요청
요청은 "요청된 키를 찾을 수 없음"(부정된 경우) 오류 또는 지정된
부정 키가 만료될 때까지 오류(거부된 경우).
거부의 오류 인수는 UNIX 오류 번호이거나 '거부','만료'
또는 '취소 된'.
새로 인스턴스화된 키는 지정된 키링에 연결됩니다.
이러한 명령은 request-key에 의해 실행되는 프로그램에서만 실행할 수 있습니다.
권한 부여 키는 커널에 의해 설정되고 요청 키의 세션에 연결됩니다.
열쇠 고리. 이 특수 키는 참조하는 키가 인스턴스화되면 취소됩니다.
어떤 식으로든.
testbox>keyctl 인스턴스화 $1 "디버그 $3" $4
testbox>keyctl 부정 $1 30 $4
testbox>keyctl 거부 $1 30 64 $4
The 정확한 명령의 변형은 데이터를 가져오는 대신 stdin에서 데이터를 읽습니다.
명령 줄에서 :
testbox>echo -n "디버그 $3" | keyctl pintantiate $1 $4
(*) 세트 전에, 만료 시간 on a 키
키ctl 시간 제한
이 명령은 키에 대한 제한 시간을 설정하거나 기존 제한 시간을 지우는 데 사용됩니다.
지정된 값은 XNUMX입니다. 제한 시간은 미래의 초 단위로 지정됩니다.
testbox>keyctl 시간 초과 $1 45
(*) 검색 a 열쇠의 보안 문맥
키ctl 보안
이 명령은 키의 LSM 보안 컨텍스트를 검색하는 데 사용됩니다. 라벨이 인쇄되어 있습니다.
표준 출력.
testbox>keyctl 보안 @s
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
(*) 주기 전에, 부모의 방법 a 세션 열쇠 고리
키ctl new_session
이 명령은 호출 프로세스(일반적으로 셸)에 새 세션을 제공하는 데 사용됩니다.
keyring, 이전 세션 키링을 버립니다.
testbox> keyctl 세션 foo
참가한 세션 키링: 723488146
테스트박스> keyctl 쇼
세션 키링
-3 --alswrv 0 0 키링: foo
테스트박스> keyctl new_session
490511412
테스트박스> keyctl 쇼
세션 키링
-3 --alswrv 0 0 키링: _ses
이것은 다음에 영향을 미칩니다. 부모의 시스템 호출을 호출하는 프로세스의
자격 증명이 일치하는 프로세스에만 영향을 미칩니다. 또한 변경 사항이 적용되지 않습니다.
부모 프로세스가 다음에 커널 공간에서 사용자 공간으로 전환할 때까지 영향 -
일반적으로 기다리다() 시스템 호출이 반환됩니다.
(*) 제거 죽은 키 에 전에, 세션 열쇠 고리 나무
키ctl 베다
이 명령은 호출자의 세션 키링 트리에 대한 깊이 우선 검색을 수행하고
만료, 해지,
거부 또는 부정. 사용할 수 없는 라이브 키를 제거하려고 시도하지 않습니다.
단순히 부여 된 권한이 없기 때문입니다.
회수 가능으로 지정된 키는 호출자가 다음을 수행한 경우에만 키링에서 제거됩니다.
해당 키링에 대한 쓰기 권한과 검색 권한을 부여하는 키링만
발신자가 검색됩니다.
이 명령은 종료되기 전에 수집된 키 수를 인쇄합니다. 만약 -v 플래그가 통과되었습니다
그런 다음 수확된 키는 성공 또는
연결 해제 실패.
(*) 제거 어울리는 키 에 전에, 세션 열쇠 고리 나무
키ctl 숙청
키ctl 퍼지 [-i] [-p]
키ctl 퍼지 -s
이 명령은 깊이 우선 검색을 수행하여 호출자의 세션에서 일치하는 키를 찾습니다.
키링 트리와 연결 해제를 시도합니다. 성공적으로 연결 해제된 키의 수는
마지막에 인쇄.
키링은 검색할 발신자에게 읽기 및 보기 권한을 부여해야 하며
제거할 키는 보기 권한도 부여해야 합니다. 키는 다음에서만 제거할 수 있습니다.
쓰기 권한을 부여하는 키링.
첫 번째 변형은 지정된 유형의 모든 키를 제거합니다.
두 번째 변형은 지정된 유형과 일치하는 지정된 유형의 모든 키를 제거합니다.
말 그대로 설명. -i 플래그는 대소문자 독립적인 일치를 허용하고 -p 플래그는
접두사 일치.
세 번째 변형은 다음을 사용하여 지정된 유형 및 일치하는 설명의 모든 키를 제거합니다.
설명과 일치하는 커널의 키 유형 비교기. 이것은 키 유형을 허용합니다
키를 다양한 설명과 일치시킵니다.
(*) 돈을 받아가세요 지속 열쇠 고리
키ctl get_persistent [ ]
이 명령은 현재 UID 또는 지정된 UID에 대한 영구 키링을 가져옵니다.
지정된 키링에 부착합니다. 영구 키링의 ID가 인쇄됩니다.
표준 출력.
커널은 존재하지 않는 경우 키링을 생성하고 이 명령이 실행될 때마다
키링의 만료 시간 제한을 다음 값으로 재설정합니다.
/proc/sys/kernel/keys/pertant_keyring_expiry
(기본적으로 XNUMX일). 제한 시간에 도달하면 영구 키링이
제거되고 고정된 모든 항목은 가비지 수집될 수 있습니다.
프로세스의 실제 또는 유효 UID 이외의 UID를 지정하면 오류가 발생합니다.
프로세스에 CAP_SETUID 기능이 없는 경우 제공됩니다.
오류
이 프로그램에서 반환되는 여러 가지 일반적인 오류가 있습니다.
"디렉토리 아님" - 키가 키링이 아닙니다.
"요청한 키를 찾을 수 없음" - 찾은 키를 사용할 수 없습니다.
"키가 해지되었습니다" - 해지된 키에 액세스했습니다.
"키가 만료되었습니다" - 만료된 키에 액세스했습니다.
"권한 거부됨" - UID/GID/마스크 조합에 의해 권한이 거부되었습니다.
onworks.net 서비스를 사용하여 온라인에서 keyctl 사용
