EOS 帐户权限操作--你找不到的干货 (原创) 续集-EOS 3.0
https://eosfans.io/topics/372
?
關(guān)于2.0權(quán)限問題請移步https://eosfans.io/topics/28
目錄
- 查看權(quán)限
- 改變權(quán)限
- 增加權(quán)限
- 刪除權(quán)限
查看權(quán)限
有人說查看權(quán)限非常簡單,不就是看看用戶信息嘛!
其實(shí)不然,EOS用戶的權(quán)限是與key相關(guān)聯(lián)的,所以確定你有沒有全縣的其實(shí)是要看你有沒有這些公匙對應(yīng)的私匙:
cleos get account lome
{"account_name": "lome","permissions": [{"perm_name": "active","parent": "owner","required_auth": {"threshold": 1,"keys": [{"key": "EOS8FbfG31mJELxUS4Jj9Xv3tsNRzFMg2uP2h9b5hCkvHomsatVYw","weight": 1}],"accounts": []}},{"perm_name": "owner","parent": "","required_auth": {"threshold": 1,"keys": [{"key": "EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight": 1}],"accounts": []}}] }更改授權(quán)
更改權(quán)限的key
初始化的帳戶是有兩種權(quán)限的,這一步我們來給帳戶加一個權(quán)限(群組)。
1.這里我就拿我在測試的公網(wǎng)上的一個帳戶,
初始化的帳戶是這樣的:
cleos set account permission ${account_name} ${permission} ${JSON} ${permission}
cleos set account permission lome active '{"threshold": 1, "keys": [{"key": "EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg", "weight": 1}], "accounts": []}' owner更改以后的賬號如下:
{"account_name": "lome","permissions": [{"perm_name": "active","parent": "owner","required_auth": {"threshold": 1,"keys": [{"key": "EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight": 1}],"accounts": []}},{"perm_name": "owner","parent": "","required_auth": {"threshold": 1,"keys": [{"key": "EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight": 1}],"accounts": []}}] }參數(shù)說明:
threshold權(quán)限閥值,權(quán)限等于閥值才能獲取該權(quán)限,否則授權(quán)失敗
keys 是該權(quán)限已授權(quán)的密匙 : keys中的key為授權(quán)的密匙對的公匙,weight 為授權(quán)密匙對的權(quán)重 ps: 若閥值是2,權(quán)重是1,是不能夠完成授權(quán)的,操作將失敗.
accounts 是該權(quán)限已授權(quán)的帳戶: permission是被授權(quán)用戶的權(quán)限這里指的就是lome的active權(quán)限,weight指的也是權(quán)重。
ps:重要:授權(quán)用戶權(quán)限其實(shí)跟授權(quán)key是一個道理,其實(shí)授權(quán)帳戶權(quán)限,實(shí)質(zhì)上就是授權(quán)該權(quán)限的密匙對權(quán)限。
最后owner是權(quán)限,只有owner權(quán)限才能改變用戶的權(quán)限
值得一提的是:EOS3.0對權(quán)限及權(quán)重做了校驗(yàn)。如果我的命令是這樣的:
cleos set account permission lome active '{"threshold":2,"keys":[{"key":"EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight":1}],"accounts":[]}' owner該操作將會失敗,因?yàn)檫@個權(quán)限根本就達(dá)不到伐值,2.0在這里是沒有校驗(yàn)的,錯誤提示如下:
Error 3040000: message validation exception Error Details: Invalid authority: {"threshold":2,"keys":[{"key":"EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight":1}],"accounts":[]}增加權(quán)限的授權(quán)賬戶
cleos set account permission lome active '{"threshold":2,"keys":[{"key":"EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight":1}],"accounts":[{"permission":{"actor":"eosio","permission":"active"},"weight":1}]}' owner這里更改的是lome賬戶權(quán)限的accounts權(quán)限,下面看一下更改完成后我的賬戶:
{"account_name": "lome","permissions": [{"perm_name": "active","parent": "owner","required_auth": {"threshold": 2,"keys": [{"key": "EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight": 1}],"accounts": [{"permission": {"actor": "eosio","permission": "active"},"weight": 1}]}},{"perm_name": "owner","parent": "","required_auth": {"threshold": 1,"keys": [{"key": "EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight": 1}],"accounts": []}}] }在這里我的權(quán)重伐值為2,key的權(quán)重為1,eosio@active的權(quán)重為1.那么要使用lome@active權(quán)限就需要key和eosio@active所對應(yīng)的key的權(quán)限。
增加多個授權(quán)key
增加授權(quán)的命令如下:
cleos set account permission lome active '{"threshold":1,"keys":[{"key":"EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight":1},{"key":"EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight":1}],"accounts":[]}' owner結(jié)果如下:
{"account_name": "lome","permissions": [{"perm_name": "active","parent": "owner","required_auth": {"threshold": 1,"keys": [{"key": "EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight": 1},{"key": "EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight": 1}],"accounts": []}},{"perm_name": "owner","parent": "","required_auth": {"threshold": 1,"keys": [{"key": "EOS5hepJxGjP3X93wVmXZeBSNavGWeJvwWtev5ak8oARqwrXjehXd","weight": 1}],"accounts": []}}] }增加權(quán)限多個授權(quán)賬戶
增加授權(quán)的命令如下:
cleos set account permission lome active '{"threshold":1,"keys":[],"accounts":[{"permission":{"actor":"test","permission":"active"},"weight":1},{"permission":{"actor":"eosio","permission":"active"},"weight":1}]}' owner結(jié)果如下:
{"account_name": "lome","permissions": [{"perm_name": "active","parent": "owner","required_auth": {"threshold": 1,"keys": [],"accounts": [{"permission": {"actor": "test","permission": "active"},"weight": 1},{"permission": {"actor": "eosio","permission": "active"},"weight": 1}]}},{"perm_name": "owner","parent": "","required_auth": {"threshold": 1,"keys": [{"key": "EOS5hepJxGjP3X93wVmXZeBSNavGWeJvwWtev5ak8oARqwrXjehXd","weight": 1}],"accounts": []}}] }增加多個授權(quán)key && 增加權(quán)限多個授權(quán)賬戶
增加授權(quán)的命令如下:
cleos set account permission lome active '{"threshold":1,"keys":[{"key":"EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight":1},{"key":"EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight":1}],"accounts":[{"permission":{"actor":"test","permission":"active"},"weight":1},{"permission":{"actor":"eosio","permission":"active"},"weight":1}]}' owner結(jié)果如下:
{"account_name": "lome","permissions": [{"perm_name": "active","parent": "owner","required_auth": {"threshold": 1,"keys": [{"key": "EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight": 1},{"key": "EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight": 1}],"accounts": [{"permission": {"actor": "test","permission": "active"},"weight": 1},{"permission": {"actor": "eosio","permission": "active"},"weight": 1}]}},{"perm_name": "owner","parent": "","required_auth": {"threshold": 1,"keys": [{"key": "EOS5hepJxGjP3X93wVmXZeBSNavGWeJvwWtev5ak8oARqwrXjehXd","weight": 1}],"accounts": []}}] }增加權(quán)限
代碼如下:
cleos set account permission lome test '{"threshold":1,"keys":[{"key":"EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight":1}],"accounts":[]}' active結(jié)果如下:
{"account_name": "lome","permissions": [{"perm_name": "active","parent": "owner","required_auth": {"threshold": 1,"keys": [{"key": "EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight": 1},{"key": "EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight": 1}],"accounts": [{"permission": {"actor": "test","permission": "active"},"weight": 1},{"permission": {"actor": "eosio","permission": "active"},"weight": 1}]}},{"perm_name": "owner","parent": "","required_auth": {"threshold": 1,"keys": [{"key": "EOS5hepJxGjP3X93wVmXZeBSNavGWeJvwWtev5ak8oARqwrXjehXd","weight": 1}],"accounts": []}},{"perm_name": "test","parent": "active","required_auth": {"threshold": 1,"keys": [{"key": "EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight": 1}],"accounts": []}}] }刪除權(quán)限
終于來到了最后一節(jié),恭喜你!
有人會說這個權(quán)限或者群組沒用了怎么辦?這節(jié)我就來教你,我們來刪除它:
執(zhí)行代碼如下
命令就不再多贅述什么意思。這個命令中只有NULL前面沒見過,這里是用來專門刪除權(quán)限或者群組用的。執(zhí)行結(jié)果如下:
{"account_name": "lome","permissions": [{"perm_name": "active","parent": "owner","required_auth": {"threshold": 1,"keys": [{"key": "EOS6ePVMSdSkGn4wDMqcCSTSN3GnRgEPxDPEioQQXUkfYxT8jrudg","weight": 1},{"key": "EOS5wMFMPiD6qbKSZQpJFdEpzvY2yC2o6XLsg97gPPrYHbW4KovjV","weight": 1}],"accounts": [{"permission": {"actor": "test","permission": "active"},"weight": 1},{"permission": {"actor": "eosio","permission": "active"},"weight": 1}]}},{"perm_name": "owner","parent": "","required_auth": {"threshold": 1,"keys": [{"key": "EOS5hepJxGjP3X93wVmXZeBSNavGWeJvwWtev5ak8oARqwrXjehXd","weight": 1}],"accounts": []}}] }總結(jié)
以上是生活随笔為你收集整理的EOS 帐户权限操作--你找不到的干货 (原创) 续集-EOS 3.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 官宣!极客邦科技获2000万元 A 轮融
- 下一篇: petri网初步